-1

私は Haskell に非常に慣れていません。以前のプログラミング知識は Python だけでした。宿題の一部として、整数nを取り、 nが偶数かどうかに応じて True または False を返すプログラムを作成しようとしています。if/then/else と組み込みの mod 関数を使用しようとしていますが、適切な構文を突き止めることができないようです。

iseven n = mod n 2
if n == 0 
then n = True
else n = False

誰かが私を正しい方向に向けることができれば、それは大歓迎です。

4

2 に答える 2

17

If-then-else の形式は次のとおりです。

iseven n = if mod n 2 == 0 then True else False

参照: http://www.haskell.org/haskellwiki/If-then-else

または、True/False の戻り値を無視します。

iseven n = mod n 2 == 0

またはさらに良いことに、 Preludeevenの関数を使用するだけです。

于 2013-09-11T01:51:28.940 に答える
7

持っている 2 つの部分を接続して、構文の問題を修正するだけです。

isEven n = if   n `mod` 2 == 0
           then True
           else False

Trueただし、 と比較する必要はありませんTrue。次のようにするだけです。

isEven n = n `mod` 2 == 0

Haskelly を使いたい場合は、無意味にすることができます。

isEven = (== 0) . (`mod` 2)
于 2013-09-11T01:52:59.997 に答える