2009-07-12 1 views
2

私はこれをやってみました:PLT Schemeでモジュールを作成するにはどうすればよいですか?

#lang scheme 
(module duck scheme/base 
     (provide num-eggs quack) 
     (define num-eggs 2) 
     (define (quack n) 
     (unless (zero? n) 
      (printf "quack\n") 
      (quack (sub1 n))))) 

しかし、私はこのエラーを取得する:

module: illegal use (not at top-level) in: 
(module duck scheme/base (provide num-eggs quack) (define num-eggs 2) (define (quack n) (unless (zero? n) (printf "quack\n") (quack (sub1 n))))) 

正しい方法は何か?

答えて

3

(module duck scheme/base行(および閉じる括弧)を削除する必要があります。

コードを#lang schemeで開始すると、scheme言語を使用するモジュールにコードを配置することになります。代わりに小さい言語を使用する場合は、#lang scheme/baseを使用することもできます。

は(そして、ところで、あなたの質問のタイトルが悪いです - :

は(#langを使用して、いくつかのソースファイルにわたり

(parameterize ([read-accept-reader #t]) 
    (call-with-input-file "some file" read)) 

とあなたが得るものを見る本当に納得取得するには、これを行います。) - これは他の実装には関係ないので、 "PLT Scheme"でなければなりません。

関連する問題