Haskell程序显示了两个根,并且在方程没有实根或者所有值都作为根的情况下应该返回零。
functionRoot :: Float -> Float -> Float -> (Float,Float)
functionRoot a b c = if d < 0 then error "0" else (x, y)
where x = e + sqrt d / (2 * a)
y = e - sqrt d / (2 * a)
d = b * b - 4 * a * c
e = - b / (2 * a)
错误:file:。\ roots.hs:4 - 输入中的语法错误(意外符号“y”) 有什么想法吗?
答案 0 :(得分:8)
您需要进一步缩进where
下的定义。
functionRoot a b c = if d < 0 then error "0" else (x, y)
where
x = e + sqrt d / (2 * a)
y = e - sqrt d / (2 * a)
d = b * b - 4 * a * c
e = - b / (2 * a)