以下算法用于计算二次方程根,但编译它会产生编译错误。 我从教程中复制了它。
2 roota.hs:5:20: parse error on input `='
roots (a,b,c) =
if d < 0 then error "sorry" else (x1, x2)
where x1 = e + sqrt d / (2 * a)
x2 = e - sqrt d / (2 * a)
d = b * b - 4 * a * c
e = - b / (2 *a)
感谢您的回答。
答案 0 :(得分:5)
这是缩进的问题。尝试
roots (a,b,c) =
if d < 0 then error "sorry" else (x1, x2)
where
x1 = e + sqrt d / (2 * a)
x2 = e - sqrt d / (2 * a)
d = b * b - 4 * a * c
e = - b / (2 *a)
另请参阅a question about indentation和an article from a Haskell Wikibook。