2011-11-28 12 views
5

में किसी अन्य फ़ाइल में r5rs फ़ाइल सहित, मेरे पाठ्यक्रमों में से एक एसआईसीपी के कुछ हिस्सों के लिए ड्रैकेट का उपयोग कर रहा है। हम मेटासिर्क्यूलर मूल्यांकनकर्ता पर काम कर रहे हैं और मेरे पास आर 5 आरएस कोड फ़ाइल है (set-car! और set-cdr!) जो मुझे अपने काम के साथ उपयोग करने की ज़रूरत है। चूंकि आर 5 आरएस फ़ाइल लगभग 500 लाइनें है, इसलिए मैं इसे एक अलग बफर में रखना पसंद करूंगा। मैं इसे अपने उत्तर बफर के परिभाषाओं में कैसे शामिल कर सकता हूं? ऐसा लगता है कि racket/include#lang racket की आवश्यकता है, लेकिन set-car! और set-cdr! उस भाषा में नहीं हैं।रैकेट

उत्तर

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 चलाता हूं, तो यह उचित बात करता है 916 खेल रहा है, और इसके इंटरैक्शन बफर f1.ss में लिखी गई सभी परिभाषाओं के बारे में जानेंगे।

यह documentation में वर्णित रैकेट-specfic निम्न-स्तर मॉड्यूल आयात सामग्री का उपयोग करता है। सौभाग्य!

संबंधित मुद्दे