我对 Haskell 很陌生,我唯一的编程知识是 Python。我正在尝试为家庭作业的一部分编写一个程序,该程序将采用整数n并根据n是否为偶数返回 True 或 False。我正在尝试使用 if/then/else 以及内置的 mod 函数,但我似乎无法确定正确的语法。
iseven n = mod n 2
if n == 0
then n = True
else n = False
如果有人能指出我正确的方向,将不胜感激。
我对 Haskell 很陌生,我唯一的编程知识是 Python。我正在尝试为家庭作业的一部分编写一个程序,该程序将采用整数n并根据n是否为偶数返回 True 或 False。我正在尝试使用 if/then/else 以及内置的 mod 函数,但我似乎无法确定正确的语法。
iseven n = mod n 2
if n == 0
then n = True
else n = False
如果有人能指出我正确的方向,将不胜感激。
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
中的功能。
您只需要连接您拥有的两个部分并修复语法问题。
isEven n = if n `mod` 2 == 0
then True
else False
但是你不需要True
比较True
; 您可以执行以下操作:
isEven n = n `mod` 2 == 0
如果你想变得非常 Haskelly,你可以让它变得无意义:
isEven = (== 0) . (`mod` 2)