2

WinGHCi では、次のコードをどのように実装できますか?

soma :: Int -> Int
soma 1 = aluno 1
soma n = aluno n + soma (n-1)

現在、次を使用して複数行のコードを書いています

:{
...
:}

しかし、この場合、それは問題を解決していないようです。また、なぜ何かが

soma x y = x + y

WinGHCi で作業しているときはどうなりますか? letキーワードを使用する場合にのみ実行できます

let soma x y = x + y -- valid Haskell code

ただし、ほとんどの文献では、人々はそれを使用していないようです (コードをコンパイルしているためだと思いますか?)。

ありがとう

4

2 に答える 2

3

Haskell プログラミングの通常のワークフローは、関数定義をファイルに入れ、そのファイルを ghci でロードして関数をテストすることです。

ghci で関数 (または変数) を定義するには、-block 内で行うのと同じように使用する必要がありletます。関数を定義するには、型シグネチャまたは複数のケースを使用して、次のように行を区切ります。dolet f x = x+1;

let soma :: Int -> Int; soma 1 = aluno 1; soma n = aluno n + soma (n-1)

を使用:{ }して複数の行に分けて記述できますが;、各行の最後に が必要です。

于 2010-09-19T02:08:49.113 に答える
2

GHCi は IO モナドで実行されるので (私が思うに)、その意味を理解するには let キーワードを使用する必要があります。

コードを 'soma.hs' というファイルに書き込んで、次のように ghci にロードしてみませんか?

:l soma.hs

それも同様に機能するはずです。

于 2010-09-19T02:07:07.007 に答える