But since the read may block, it matters *when* you perform it.  For example if 
you print "Hello" and then read the IVar, you'll block after printing; but if 
you read the IVar and then print, the print won't come out.  If the operation 
was pure (no IO) then you'd have a lot less control over when it happened.

Simon

From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Lennart 
Augustsson
Sent: 04 December 2007 08:19
To: Conal Elliott
Cc: haskell@haskell.org
Subject: Re: [Haskell] IVars

Good question.  That must be a matter of taste, because as you say the read 
will always produce the same result.  But it sill is a bit of a strange 
operation.

  -- Lennart
On Dec 4, 2007 6:25 AM, Conal Elliott < [EMAIL PROTECTED]<mailto:[EMAIL 
PROTECTED]>> wrote:
Oh.  Simple enough.  Thanks.

Another question:  why the IO in readIVar :: IVar a -> IO a, instead of just 
readIVar :: IVar a -> a?  After all, won't readIVar iv yield the same result 
(eventually) every time it's called?

On Dec 3, 2007 12:29 AM, Lennart Augustsson <[EMAIL PROTECTED]<mailto:[EMAIL 
PROTECTED]>> wrote:
You can make them from MVars.
On Dec 2, 2007 8:03 PM, Conal Elliott <[EMAIL PROTECTED]<mailto:[EMAIL 
PROTECTED]>> wrote:
what became of (assign-once) IVars?  afaict, they were in concurrent haskell 
and now aren't.
_______________________________________________
Haskell mailing list
Haskell@haskell.org<mailto:Haskell@haskell.org>
http://www.haskell.org/mailman/listinfo/haskell



_______________________________________________
Haskell mailing list
Haskell@haskell.org<mailto:Haskell@haskell.org>
http://www.haskell.org/mailman/listinfo/haskell

_______________________________________________
Haskell mailing list
Haskell@haskell.org
http://www.haskell.org/mailman/listinfo/haskell

Reply via email to