isOdd :: Integer -> Bool
isOdd x = (if x mod 2 == 0 False else True)
括弧は必要ありません:
isOdd :: Integer -> Bool
isOdd x = if x mod 2 == 0 False else True
見逃したthen
:
isOdd :: Integer -> Bool
isOdd x = if x mod 2 == 0 then False else True
演算子として使用mod
しているため、バッククォートで囲む必要があります。
isOdd :: Integer -> Bool
isOdd x = if x `mod` 2 == 0 then False else True
それはうまくいきます。
if blah then False else True
さらに、次のように簡単に書くことができますnot (blah)
。
isOdd :: Integer -> Bool
isOdd x = not (x `mod` 2 == 0)
さらに簡単に:
isOdd :: Integer -> Bool
isOdd x = x `mod` 2 /= 0
注意: これは実質的に標準odd
関数と同じです。
どのチュートリアルを試しましたか?
Learn You Haskell には関数を紹介する章があります。