haskell

Haskell quadratic equation root


Haskell program which shows the two roots and in the case that the equation has no real roots or has all values as roots should return zero.

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)

ERROR: file:.\roots.hs:4 - Syntax error in input (unexpected symbol "y") any thought?


Solution

  • You need to indent definitions under where further.

    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)