我是Haskell的新手,我之前的编程知识只有Python。我正在尝试编写一个程序作为家庭作业的一部分,它将采用整数 n 并返回True或False,具体取决于 n 是否为偶数。我正在尝试使用if / then / else以及内置的mod函数,但我似乎无法确定正确的语法。
iseven n = mod n 2
if n == 0
then n = True
else n = False
如果有人能指出我正确的方向,我们将不胜感激。
答案 0 :(得分:16)
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
或者更好的是,只需使用even
函数from the Prelude。
答案 1 :(得分:7)
您只需要连接两个部分并修复语法问题。
isEven n = if n `mod` 2 == 0
then True
else False
但您无需将True
与True
进行比较;你可以做以下事情:
isEven n = n `mod` 2 == 0
如果你想得到非常好的Haskelly,你可以让它无意义:
isEven = (== 0) . (`mod` 2)