2009-07-30 14 views
3

DrSchemeを使用してSICPを使用していますが、特定の手順(例:square)が繰り返し使用されていることに気付きました。これらを別のファイルに入れて、毎回書き直すことなく他のプログラムに組み込むことができるようにしたいのですが、どうやってこれを行うのか分からないようです。DrSchemeにファイルを含めるにはどうすればいいですか?

は、私が試してみた:これらの作品の

なし。明らかに私はストローで握っています - どんな助けも大歓迎です。

答えて

4

どの言語レベルを使用しているのかは疑問です。一部のレガシー言語では特定のメカニズムが利用できなくなる可能性があります。

最適な包含/抽象化メカニズムはモジュールのものです。

まず、言語レベルを「モジュール」に設定します。私は同じディレクトリにある2つのファイルがある場合次に、:

ファイルを-square.ssを使用しています:

#lang scheme 

(require "square.ss") 

(define (super-duper x) (square (square x))) 

ファイルsquare.ss:

#lang scheme 

(provide square) 

(define (square x) (* x x)) 

それから私は、 "実行" を打つことができます「uses-square.ss」バッファー上で実行すれば、すべてが期待通りに動作します。

警告:テストされていないコード。

4

私はあなたが探していると信じて:

 
(include "relative/path/to/scheme/file.scm") 

(必要)式はロード・モジュール用です。

+0

Gambit Schemeで動作します。少なくとも –

1

はMIT/GNU Schemeでは、あなたはこのようなものでファイルを読み込むことができます。

(load "c:\\sample-directory\\sample-file.scm") 

しかし、それはDrSchemeに動作するかどうかはわかりません。

+0

言語がSIPCに設定されている場合、DrSchemeで動作します.SICPアドイン – dan

+0

がGambit Schemeで動作します。 –

1
(require "~/path-to-directory/filename") 
関連する問題