【发布时间】:2016-01-22 00:05:10
【问题描述】:
我的 Haskell 练习需要一点提示。
首先我必须实现一个程序,它检查一个整数是否为偶数...到目前为止,我的代码完美无缺
isEven :: Int -> Bool
isEven 0 = True
isEven (-1) = False
isEven 1 = False
isEven x
|x<0 = isEven (x+2)
|x>0 = isEven (x-2)
接下来我必须使用这个函数来计算列表中的所有偶数。 我到目前为止的代码:
countEven :: [Int] -> Int
countEven (x:xs) = (isEven x)
|True = 1 + countEven xs
|False = 0 + countEven xs
我想使用 isEven-returncode (True|False) 来确定是否计算我的 Int。我不知道如何继续编写这个脚本。
在这种情况下,它说
输入“|”解析错误
我尝试了另一个脚本,但它给出了错误
无法将预期类型“Int”与实际类型“Bool”匹配。
因此,isEven 函数正在工作,但我不知道如何将“True”语句转换为我的 if 语句。
【问题讨论】:
-
如果您将否定情况转成
| x<0 = isEven (-x),则不需要isEven (-1) = False。
标签: haskell