私はいくつかの関数をファイルに入れました。私のPC上でどこに私の機能を簡単にロードできるようにこのファイルを保存すべきですか?Haskellの「モジュール」はどこに保存しますか?
私は、Windows 64ビットコンピュータでHaskellプラットフォームを使用しています。
私はいくつかの関数をファイルに入れました。私のPC上でどこに私の機能を簡単にロードできるようにこのファイルを保存すべきですか?Haskellの「モジュール」はどこに保存しますか?
私は、Windows 64ビットコンピュータでHaskellプラットフォームを使用しています。
私は通常、自分のモジュールを同じディレクトリツリーに置き、ツリーのルートディレクトリでghci
を起動します。その後、モジュールはお互いをインポートすることができ、私は容易に:load
モジュールをghci
に対話的に入れることができます。
$ ghci
.... loading ....
Prelude> :load directory/subdirectory/mymodule.hs
マイ '' ghci' Cである別の悪いジョーク>は::\プログラムファイル(x86の)ここで
は、文書化されています\ Haskell Platform \ 2011.2.0.0 \ bin'にあります。私はここに入れますか? – Dynamic
いいえ!インストール時には、パスや環境変数に自分自身を入れておかなければなりません。そのため、あなたが入っているディレクトリに関係なく、コマンドラインから 'ghci'を実行することができます。環境変数が正しく設定されていない場合、コントロールパネルから手動で変更することができます。 –
待って...何?あなたのPCにあなたの機能がありますか? – Dynamic
あなたのモジュールは、いくつかの異なるプロジェクトからアクセスできるようにしたい場合は、私は彼らのために秘密結社のパッケージを作成し、cabal install
を使用して、それをインストールすることをお勧めしたいです。引数なしのcabal install
は、現在のディレクトリにある.cabal
ファイルを検索し、対応するパッケージをインストールします。
モジュールを1つのプロジェクトからアクセスできるようにするには、階層的なフォルダツリーでソースを整理する通常の方法がHaskellにも適用されます。私は例を示しましょう:
Hello/World.hs
Foo/Bar.hs
Quux.hs
Hello.hs
Hello/World.hs
は、ヘッダー内のmodule Hello.World where
を持っている必要があります。メインモジュールのサイズはmodule Main
である必要がありますが、実際のファイル名は何でもかまいません(例:Quux.hs
)。 Foo/Bar.hs
にはimport Hello.World
を使用できます。 Foo/Bar.hs
をghci
にロードすると、現在のディレクトリがツリーのルートになっている必要があります。そうでなければ、Hello.Worldは見つかりません。ファイル名ではなくモジュール名をghciに渡すことができます。 ghci Hello.Worldが動作します。クラウドで
http://haskell.org/ghc/docs/latest/html/users_guide/separate-compilation.html
http://haskell.org/ghc/docs/latest/html/users_guide/packages.html
+1。 Cabalは実際にはとても使いやすいです。このユースケースのためにはかなり完全に自動化されています( 'cabal init'は' .cabal'ファイルを生成し、ビルドの依存関係を記入するだけです) –
... –