我的Haskell代码出错

时间:2014-07-18 04:09:29

标签: parsing haskell

我的代码出现了这个错误:

“解析错误(可能是错误的缩进或括号不匹配)”

max3 a b c = if a>b && a>c then show a
     else if b>a && b>c then show b
     else if c>a && c>b then show c

我需要在a,b和c之间获得更高的数字

编辑:按建议添加else子句后:

max3 a b c = if a>b && a>c then show a
     else if b>a && b>c then show b
     else if c>a && c>b then show c
     else show "At least two numbers are the same"

现在我收到此错误“解析错误输入`if'”

按建议编辑!

编辑:已解决,我跟这样的警卫说过! TY!

2 个答案:

答案 0 :(得分:2)

正如John L在评论中提到的那样,当你的条件都没有时,你需要一个最终的else条款来解决这个问题。

或者,您可以使用警卫代替if..else if,如下所示:

max3 a b c 
          | a > b && a > c = show a
          | b > a && b > c = show b
          | c > a && c > b = show c
          | otherwise = show "At least two numbers are the same"

答案 1 :(得分:1)

import Data.List (maximum)

max3 a b c = maximum [a, b, c]

Fuhgeddaboudit。