How does caller choose which particular instance of Num they want?

In object-oriented language If function return type is an interface it means
that it can return any implementation of this interface, but caller can't
choose which particular inplementation they want.


What the difference between haskell class and interface in object-oriented
languge such Java or C#?

2008/1/21, Brent Yorgey <[EMAIL PROTECTED]>:
>
>
> 2008/1/21 Alexander Seliverstov <[EMAIL PROTECTED]>:
>
> > Hi, I try to undestand why this code dosen't work
> >
> > f :: (Num a)=>Integer->a
> >
> > f i = i
> >
> > Integer is an instance of Num, so why does this code produce error:
> > "Couldn't  match expected type 'a' againsta inferred type 'Integer' ..."
> >
> But the type of this function says that it can return *any* instance of
> Num -- that is, the caller gets to choose which particular instance of Num
> they want.  This function can only ever return an Integer.
>
> There is actually a function of this type, however; it's called
> fromIntegral.  It works because it is a member of the Num type class.
>
> -Brent
>
_______________________________________________
Haskell-Cafe mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to