在Haskell中使用警卫时出错

时间:2016-02-22 13:30:27

标签: haskell compiler-errors

我在Haskell中创建了以下代码:

eqs a b c 
| ((b^2) - (4*a*c)) < 0 = "MESSAGE"
| otherwise =  "x1= " ++ show (sqrt((-b + ((b^2) - (4*a*c))))2*a) ++ "x2= " show (sqrt((-b - ((b^2) - (4*a*c))))2*a)

为什么会收到以下错误消息?

  

错误文件:。\ file.hs:2 - 声明中的语法错误(意外的`;',可能是由于布局错误)

1 个答案:

答案 0 :(得分:1)

我在代码中看到的唯一问题是类型错误,而不是您发布的解析器错误。类型错误在以下表达式中:

 (-b + ((b^2) - (4*a*c))))2*a 

我相信你可能想要使用除法,所以正确的表达应该是

 (-b + ((b^2) - (4*a*c)))) / (2*a)

希望这可以帮到你。为了更好地帮助您,请考虑发布您的Haskell程序文件的全部内容。