Haskell方程根编译错误

时间:2011-12-18 06:59:04

标签: haskell functional-programming

以下算法用于计算二次方程根,但编译它会产生编译错误。 我从教程中复制了它。

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)

感谢您的回答。

1 个答案:

答案 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 indentationan article from a Haskell Wikibook