2011-11-28 26 views
5

我的課程之一是使用DrRacket來處理SICP的某些部分。我們正在研究metacircular評估器,並且我有一個R5RS代碼文件(set-car!set-cdr!),我需要使用它來處理我的工作。由於R5RS文件大約500行,我寧願將它保存在單獨的緩衝區中。我如何將它包含到我的答案緩衝區的定義中?看起來racket/include要求#lang racket,但set-car!set-cdr!不是那種語言。將r5rs文件包含在球拍中的另一個文件中

回答

9

你可以做到以下幾點:

  1. #lang R5RS模塊,和郎行後增加以下內容:

    (#%provide (all-defined)) 
    
  2. 有你的答案緩衝區也#lang R5RS,並使用#%需要在其定義拉:

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

例如,如果我有一個f1.ss具有以下內容:

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

f2.ss具有以下內容:

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

然後如果我運行f2.ss,它在dis中做適當的事情播放916,其交互緩衝區將知道在f1.ss中寫入的所有定義。

這使用Racket-specfic低級模塊導入documentation中提到的東西。祝你好運!

相關問題