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
signature.asc
Description: Digital signature
_______________________________________________ Haskell-Cafe mailing list [email protected] http://www.haskell.org/mailman/listinfo/haskell-cafe
