[Haskell-cafe] Re: philosophy of Haskell
es at ertes.de
Sun Aug 15 15:30:19 EDT 2010
Brandon S Allbery KF8NH <allbery at ece.cmu.edu> wrote:
> On 8/15/10 11:40 , Tillmann Rendel wrote:
> > But in a world passing interpretation of IO, print is supposed to be
> > a pure Haskell function. So the value world2 can only depend on the
> > values of print and world1, but not on the actions of some
> > concurrent thread.
> > If print is not restricted to be a pure Haskell function, we don't
> > need the world passing in the first place.
> I am confused by this discussion. I originally thought some time back
> that IO was about "world passing", but in fact it's just handing off a
> baton to insure that a particular sequence of IO functions is executed
> in the specified sequence and not reordered. Nothing in the "baton"
> is intended to represent the actual "state of the world", nor is
> anything said about concurrent actions either in another thread of the
> current program or elsewhere outside the program; only ordering of
> calls in the *current* thread of execution. (Which, hmm, implies that
> unsafePerformIO and unsafeInterleaveIO are conceptually similar to
IO is just a simple language to express impure operations. What we
discuss is how to /interpret/ IO, or more specifically how to translate
IO computations into pure ones mentally.
nightmare = unsafePerformIO (getWrongWife >>= sex)
More information about the Haskell-Cafe