[Haskell-beginners] Error with floats in implementation of Horner's method.

Andrew Fleckenstein andrew.fleckenstein at gmail.com
Fri Dec 13 21:07:42 UTC 2013


And I have sent the email before it was finished, oops.

Evaluating at integer values works fine, but trying to do
*Main> let a = [-1,2,-6,2]
*Main> horner a 1.23

gives this error

<interactive>:4:10:
    No instance for (Fractional Integer)
      arising from the literal `1.23'
    Possible fix: add an instance declaration for (Fractional Integer)
    In the second argument of `horner', namely `1.23'
    In the expression: horner a 1.23
    In an equation for `it': it = horner a 1.23


I know it has something to do with types, but whenever I try to add a type
signature to the functions it just messes everything up even more. Any help
would be appreciated

Thanks,
Andrew



On Fri, Dec 13, 2013 at 4:03 PM, Andrew Fleckenstein <
andrew.fleckenstein at gmail.com> wrote:

> Hi all,
>
> I have implemented Horner's method for evaluating a polynomial as follows:
>
> -- the nth horner element, given a list of coefficients and a value at
> which it needs to be evaluated
>
> horner_element l x n
>     | n == (length l)-1 = last l
>     | otherwise = (l !! n) + (horner_element l x (n+1))*x
>
> -- compute a polynomial given as a list of coefficients at the value x
> using horner's method.
>
> horner l x = horner_element l x 0
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/beginners/attachments/20131213/8ff10dfb/attachment.html>


More information about the Beginners mailing list