あなたの第二の推測では、実際には正しいです。しかし
#lang racket
(require "foo.rkt")
、何をする必要がもprovide
あなたが他のファイルから必要にしたい機能である、そうでない場合はfoo.rkt
からの変数がにバインドされませんあなたモジュール。
のでfoo.rkt
ファイルの例は次のようになります。
(提供の場所は関係ない、とdefine
文の上または下にすることができます。)
したい場合は、 all-defined-out
を使用して、モジュールが一度に提供できるすべてをエクスポートすることができます。これを行うには:
#lang racket ; foo.rkt
(provide (all-defined-out))
(define x 5)
(define y 6)
は今、あなたはこのファイルを必要とし、別のモジュールにx
とy
を使用することができます:2つのファイルが同じディレクトリにする必要があること
#lang racket
(require "foo.rkt")
x ; => 5
注、そうでない場合はあなたが必要となりますそのディレクトリへのパスを渡します。このように第一添加物として
(require "subdir/to/foo.rkt")
、ラケットもimport
とload
有します。一般的に、あなたはこれらを望んでおらず、一般にrequire
/provide
のペアに固執する必要があります。
2番目の補足として、作成するローカルファイルは、require
に文字列として渡されます。そのシンボルが:(require pict)
の場合は、インストールされているモジュールが必要です。あなたのより高度なあなたはすることができますdocumentation on collectionsを読んでそれらのいずれかを行います。
[ラケットのファイルから関数をインポートするにはどうすればいいですか?](http://stackoverflow.com/questions/34756477/how-can-i-import-a-function-from-a-file -in-racket) –
また、必要なものによっては、http://stackoverflow.com/questions/4809433/including-an-external-file-in-racketも役立ちます。 –
ああ、ありがとう!その人は特定の関数をインポートするよう依頼しましたが。しかし、与えられた答えはファイルの*でした。 – p00k1e