2011-11-28 30 views
5

'daki başka bir dosyaya dahil. Kurslarımdan biri, SICP'nin bazı bölümleri için DrRacket kullanıyor. Metacircular değerlendirici üzerinde çalışıyoruz ve işimde kullanmam gereken bir R5RS kod dosyası (set-car! ve set-cdr!) var. R5RS dosyası yaklaşık 500 satır olduğu için, ayrı bir arabelleğe almayı tercih ederim. Yanıt arabamın açıklamasına nasıl ekleyebilirim? racket/include, #lang racket gerektirir, ancak set-car! ve set-cdr! bu dilde değil.Bir r5rs dosyası, raket

cevap

9

Şunları yapabilirsiniz:

  1. #lang R5RS modülü yaz ve lang satırdan sonra aşağıdaki ekleyin:

    (#%provide (all-defined)) 
    
  2. aynı zamanda Cevabınız tampon var #lang r5rs ve #%, kendi tanımlarını almak için kullanın:

    0 Örneğin
    (#%require "some-module.ss") 
    

, aşağıdaki içeriğe sahip bir f1.ss varsa:

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

ve aşağıdaki içeriğe sahip bir f2.ss:

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

sonra f2.ss çalıştırırsanız, dis içinde uygun olanı yapar 916 oynamak ve onun Etkileşim arabelleği, f1.ss'da yazılan tüm tanımları bilecektir.

Bu, documentation numaralı belgede belirtilen malzemelere sahip Racket'e özgü düşük düzey modülünü kullanır. İyi şanslar!