2011-11-28 17 views
5

Một trong các khóa học của tôi đang sử dụng DrRacket cho một số phần của SICP. Chúng tôi đang làm việc trên các đánh giá metacircular và tôi có một tập tin mã R5RS (set-car!set-cdr!) mà tôi cần phải sử dụng với công việc của tôi. Bởi vì các tập tin R5RS là khoảng 500 dòng, tôi muốn giữ nó trong một bộ đệm riêng biệt. Làm thế nào tôi có thể bao gồm nó vào defintions của bộ đệm câu trả lời của tôi? Nó xuất hiện racket/include yêu cầu #lang racket, nhưng set-car!set-cdr! không có trong ngôn ngữ đó.Bao gồm tệp r5rs vào tệp khác trong vợt

Trả lời

9

Bạn có thể làm như sau:

  1. Viết module trong r5rs #lang các, và thêm dòng sau sau khi dòng lang:

    (#%provide (all-defined)) 
    
  2. Có đệm câu trả lời của bạn cũng ở #lang r5rs và sử dụng #% yêu cầu để lấy các định nghĩa của nó:

    (#%require "some-module.ss") 
    

Ví dụ, nếu tôi có một f1.ss với nội dung sau:

#lang r5rs 
(#%provide (all-defined)) 
(define (f x) 
    (* x x)) 

và một f2.ss với nội dung sau:

#lang r5rs 
(#%require "f1.ss") 
(display (f 3)) 
(display (f 4)) 

sau đó nếu tôi chạy f2.ss, nó sẽ làm điều thích hợp trong dis chơi 916 và bộ đệm Tương tác của nó sẽ biết về tất cả các định nghĩa được viết trong f1.ss.

Điều này sử dụng công cụ nhập mô-đun cấp thấp Racket-specfic được đề cập trong documentation. Chúc may mắn!

Các vấn đề liên quan