-- 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!