
I have been trying to figure out the distinction between value, function and computation. You raised a few points that I am not sure about. In " "Computation" considered harmful. "Value" not so hot either." you said: I still don't like it; a lambda expression is not a computation, it's a formal *representation* of a mathematical object (a *value*). Isn't the lambda expression a representation of something (potentially with recursion) that yields "a value" and not the value itself? Even integer which we think of as values are represented in the same way: http://safalra.com/science/lambda-calculus/integer-arithmetic/ In " Fixing Haskell IO" you say: This "works" well enough; GHC manages to perform IO. But it doesn't fly
mathematically. Mathematical objects *never* act, sing, dance, or *do*anything. They just are. A value that acts is an oxymoron.
I guess I am not sure what a "mathematical object" is. Do you consider
Newton method a mathematical object? What would be the "value" :
http://en.wikipedia.org/wiki/Newton's_method#Square_root_of_a_number
Since I have been thinking about Haskell, Monads, etc. I am starting to
think about the saying "Life is a journey, not a destination" to imply life
is a computation not a value.
daryoush
2009/2/13 Gregg Reynolds
Many thanks to everybody who tried to set me straight on the thread about IO monad and evaluation semantics. I've begun summarizing the info, and I believe I've come up with a much better way of explaining IO; just flip the semantic perspective, and think in terms of interpretations instead of actions. Voila! Oxymoron (values that perform actions) eliminated. See the "Computation considered harmful" and "Fixing Haskell IO" articles at http://syntax.wikidot.com/blog
Naturally I would be grateful for any corrections/comments.
Thanks,
gregg
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe