Hi

i have a problem in my code!

here is my code:

-- Baic I/O and Loop (50 Points)

evalpoly = do putStr "What is the degree of polynomial: "
degree <- getLine
coeffs <- (funcOfCoeff ((read degree::Int)+1) [])
putStr "What value do you want to evaluate at: "
value <- getLine
putStr "The value of the polynomial is: "
putStr (show (polyEvaluate (coeffs) (read value :: Float) ))
putStr "\n"

--function loop to get coefficient--

funcOfCoeff 0 coeffs = do --to check the degree of 0
return coeffs --return list of coefficient

funcOfCoeff degree coeffs = do
putStr ("What is the x^" ++ show(degree-1))
putStr " coefficient: "
coeff <- getLine
loop <- funcOfCoeff (degree-1) ((read coeff :: Int) : coeffs)
return loop


polyEvaluate (coeffs) x = do
powers <- zip coeffs (iterate (+1) 0)
result <- map (\(a,b)-> a+b) powers —PROBLEM IS HERE!!!!
return result

here is error message:


in very bottom function (polyEvaluate), why is not working “result <- map (\(a,b) -> a+b) powers” ???

in Prelude, it is working


Thanks!