2

もう一度、HaskellとLeskahについての私からの全くの初心者の質問。

(まず、Haskell愛好家への主観的な褒め言葉:Haskellの学習セッションに戻ってくるたびに、私はそれがますます好きになります。これが長く続くことを願っています:-)。最新の喜びは、記号を数学に自動変換するためのレスカの砂糖です。それはコードを本当に見栄えよくします。しかし、それは重要ではありません...)

学習者パッケージをいくつかのファイルに整理したかったのです。しかし、他の定義を含む2番目のファイル(Second.hsなど)を現在のパッケージビルドユニットに追加することに成功しませんでした。Leskah / Edit Package /ExtraFilesに追加しました。しかし、これは仕事をしていないようです。さらに、この方法で(Leskah / Edit Package / Extra Filesを介して)新しいファイルをそれぞれ追加するのは少し厄介だと感じています。

とにかく結果として、構築されるのはまだ私のMain.hsのコンテンツだけです。私は確かにいくつかのポイントを逃していますか?!

もう1つの質問は、C ++では、namespaceオブジェクト定義をサブジェクト/ゴールでソートするために頻繁に使用します。Haskellの名前空間に相当するものは何ですか?モジュール?パッケージ ?

4

1 に答える 1

3

leksahに関して:ブラウザパネルから新しいモジュールを追加できます。右クリックして、コンテキストメニューから[モジュールの追加]を選択します(注:モジュール名を入力しますが、ダイアログにはファイル名を入力しません)。Package Editorからのモジュールの追加は、既存のモジュールをcabalファイルに追加するためだけに設計されています。(「カバール」の意味がわからない場合は、グーグルで検索するのがよいでしょう:))

名前空間について。最も近いのはモジュールだと思います。モジュールをインポートするだけで、現在のコンテキストに定義を追加できます。または、モジュール修飾をインポートすることもできます。その場合、モジュールから定義を修飾する必要があります。また、インポート時にモジュール名を「エイリアス」することもできます。

import Module1
import qualified Modile2
import Module3 as M3
import qualified Modile4 as M4

パッケージは、C /C++でコンパイルされたライブラリと同等です。

于 2011-01-16T00:24:07.800 に答える