Hello aldirithms, Saturday, August 5, 2006, 5:11:19 PM, you wrote:
> <<After all, suppose you have a function that reads a string from > the keyboard. Ifyou call this function twice, and the user types > something the first time and something else the second time, then > you no longer have a function, since it would return two different values.>> you can see it in that way: something which has no parameters and return different values on different calls is not a function in _mathematical_ meaning of this word. Haskell functions is a mathematical (it also named "pure") functions. In order to deal with such real-world issues I/O functions just have additional hidden argument which is considered as containing "state of the world" at the moment of function call. this allow us to think that we "getstr" is really a pure (mathematical) function, just called with different parameters each time (because state of the world is definitely changed between calls :D ) you can read further explanations at the http://haskell.org/haskellwiki/IO_inside > How do I have to interpret this? I cannot make sense of it for I do > not see where the definition of a function that I know is violated. > I view it that way: The string is just a kind of argument to the > string-reading function and that different strings (i.e. different > arguments) yield different return values is a commonplace phenomenon > with functions, isn't it? How do I have to alter this (over?)simple > interpretation to see the point the author wants to make? in C, function reading string form keyboard can be defined as char *getstr(); as you can see, it don't have string arguments in Haskell, such function will be defined as getstr :: IO String which is internally translated to something like getstr :: WorldState -> String and compiler silently adds different "world state" values to each call, making them different in mathematical sense -- Best regards, Bulat mailto:[EMAIL PROTECTED] _______________________________________________ Hugs-Users mailing list Hugs-Users@haskell.org http://www.haskell.org/mailman/listinfo/hugs-users