【发布时间】:2014-06-04 19:57:05
【问题描述】:
我尝试熟悉 haskell 中的 if 条件语句
假设我有一个参数 x,我在 haskell 中尝试以下操作
functionname x = if x > 0 then x-5
if x-5 == 0 then 1
else if x-5 /= 0 then functionname x-5
else if x-5 < then 0
所以,想法是从 x 中减去 5,检查结果是否为 0,如果是,则给 1。 如果不是,则使用表达式 x-5 再次调用该函数。 如果 x-5 的结果是否定的,则给出 0。
所以,我的问题是:这样对吗?因为当我尝试这样做时,我收到一条消息,例如输入“函数名”时出现解析错误。
我该如何解决这个问题? if-else 条件是否错误?
programm :: Int -> Bool
programm x | x > 0 =
if z == 0 then True
else if z < 0 then False
else programm z
where
z = z-2
programm x | x < 0 =
if z == 0 then True
else if z > 0 then False
else programm z
where
z = z+2
所以,我想有可能决定给定的数字是偶数。所以,我稍微修改一下你的解决方案。它是一样的,但在两个声明的开头我说:x > 0 = .... 和 x
当我把它交给编译器时,就会出现消息:异常。我在哪里做错了?
【问题讨论】:
-
与其他一些语言不同,Haskell 中的每个
if都需要一个else。
标签: haskell