-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 I also agree it is a value. The original post was attempting to make a distinction that does not exist. I deliberately avoided that topic.
"A thing cannot be both a value and a function, but e,g, getChar" My original intent was to hope the poster reconsidered the whole post. You've blown my cover :) Lennart Augustsson wrote: > But an (IO Char) is a value. You can do all the things with it > that you can do with values, e.g., pass it as an argument, stick it > in a list, etc. It is a special kind of value, since if it ever > "gets in contact with" the top level it will be executed. But the > fact that IO types also behave as values makes Haskell a very > powerful imperative language. > > On Mon, Feb 9, 2009 at 11:14 AM, Tony Morris <tmor...@tmorris.net> > wrote: You're right - my statement is inaccurate. > > Implementation details aside, I am referring specifically to the > statement "getChar ... has the type signature of a value". It > clearly does not. > > Lennart Augustsson wrote: >>>> Not it doesn't. getChar has the type signature IO Char. The >>>> IO type is abstract. GHC happens to implement it by a state >>>> monad. But in, e.g., hbc it is implemented in a totally >>>> different way, more like a continuation monad. >>>> >>>> Peeking inside an implementation of IO can be illuminating, >>>> but one must remember that IO is abstract. >>>> >>>> -- Lennart >>>> >>>> On Mon, Feb 9, 2009 at 10:26 AM, Tony Morris >>>> <tmor...@tmorris.net> wrote: Gregg Reynolds wrote: >>>>>>> The point being that the metalanguage commonly used to >>>>>>> describe IO in Haskell contains a logical >>>>>>> contradiction. A thing cannot be both a value and a >>>>>>> function, but e,g, getChar behaves like a function and >>>>>>> has the type signature of a value. >>>> getChar has the signature RealWorld -> (RealWorld, Char) >>>> > _______________________________________________ Haskell-Cafe > mailing list Haskell-Cafe@haskell.org > http://www.haskell.org/mailman/listinfo/haskell-cafe >> - -- Tony Morris http://tmorris.net/ S, K and I ought to be enough for anybody. -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.9 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iEYEARECAAYFAkmQB5EACgkQmnpgrYe6r60L5QCfffj1Vy2Yg25adZLsLBReOk/K ZAoAoISEpzQH/9D0AzQOZdxJoxmoKeBj =+ZZx -----END PGP SIGNATURE----- _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe