1

Haskellは初めてです。私はモジュール、それらが何であるか、そしてそれらをどのように使用するかについて非常に混乱しています。たとえば、add.hs次のような単純な関数を含むファイルを作成しました。

add a b = a + b

addTestCases.hsと呼ばれるファイルには、の機能をチェックするテストケースがいくつかありますadd.hs

私はどういうわけかテストケースをGHCにロードすることになっています。GHCは自動的に実行され、add.hs関数を見つけます。

私はこれをどのように達成するのか本当にわかりません。これを理解するために多くの時間を費やしてきたので、何か説明していただければ幸いです。

よろしくお願いします。

4

2 に答える 2

5

Add.hsモジュール名を宣言します。

-- Notice the module name matches the file name, this is typically required
module Add where

add :: Integer -> Integer -> Integer
add x y = x + y

そして、Test.hsで、関数がどのモジュールから来ているかを伝えます。

-- Notice we didn't declare a module name, so it defaults to 'Main'
import Add
import Test.QuickCheck
main = quickCheck (\ x y -> x > 0 && y > 0 ==> add x y > x && add x y > y)

これで、テストをコンパイルして実行できます。

$ ghc Test.hs
[1 of 2] Compiling Add              ( Add.hs, Add.o )
[2 of 2] Compiling Main             ( Test.hs, Test.o )
Linking Test ...
$ ./Test
+++ OK, passed 100 tests.

編集:

また、GHCiの内部で作業していて、上記のようにターミナルからコンパイルする場合は、次のことができます。

... run "ghci Test.hs" ...
> main
+++ OK, passed 100 tests.
于 2013-02-03T16:18:04.000 に答える
1

module Add whereadd.hsファイルの最初の行として追加します。次に、ファイルで定義したすべての関数がモジュール内にあり、それらのファイルAddに書き込むことで他のファイルからインポートできimport Addます。

于 2013-02-03T16:06:06.750 に答える