一个自制的Haskell程序如何检查是否甚至可以写入整数?

时间:2013-09-11 01:24:03

标签: haskell

我是Haskell的新手,我之前的编程知识只有Python。我正在尝试编写一个程序作为家庭作业的一部分,它将采用整数 n 并返回True或False,具体取决于 n 是否为偶数。我正在尝试使用if / then / else以及内置的mod函数,但我似乎无法确定正确的语法。

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

如果有人能指出我正确的方向,我们将不胜感激。

2 个答案:

答案 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

但您无需将TrueTrue进行比较;你可以做以下事情:

isEven n = n `mod` 2 == 0

如果你想得到非常好的Haskelly,你可以让它无意义:

isEven = (== 0) . (`mod` 2)