I'd like to ask a question concerning a following passage in "Yet another Haskell Tutorial" that ushers in the topic of monads:
I, as a beginner here, believe the haskell cafe list is the correct place for beginner questions.
<
> 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 this case I think you mean that the string typed on the keyboard is a "kind of" argument to the function. I think this is the problem. A function call f x to a function f should always return the same value if x is the same, and reading from keyboard and stating that the string read is a "kind of extra argument" to the function is not allowed. I think what is called functions here would be called "pure functions" ina different language. This would mean a function that only depends on its arguments. Using this definition a zero-parameter function (like the readLine function mentioned above) must always return the same value. This property is violated. This requirement makes Haskell a purely functional language. / johan