On Wed, Jul 25, 2007 at 11:27:59AM -0700, Alexteslin wrote:
> 
> Hi,
> 
> I am going through examples from the textbook and trying them out but some
> don't work.
> For example:
> 
> addNum :: Int -> (Int -> Int)
> addNum n = addN
>       where
>       addN m = n+m
> 
> This error message i am getting:
> 
> ERROR - Cannot find "show" function for:
> *** Expression : addNum 4
> *** Of type    : Int -> Int 
> 
> Now, the type of show is a->String, but i need some kind of function to
> print the function as a result.
> I tried some input output functions but i don't think that is the right way
> to follow.
> 
> Can anyone suggest me where to look?

You can't print function values because there is no reasonable way to do
it; printing the definition would break useful equations like 2 + 2 = 4
(since show (\_ -> 2 + 2) == "\_ -> 2 + 2" /= "\_ -> 4" == show (\_ ->
4); printing the table of values would take forever for a big type like
Int (at least a billion constructors, many more on some systems), etc.

You can print applications of functions, however;

(addNum 4)  10  ==> 14
(addNum 4)  20  ==> 24

etc.

Stefan

Attachment: signature.asc
Description: Digital signature

_______________________________________________
Haskell-Cafe mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to