[snip]
> If you're using an eager haskell implementation which does some speculative
> evaluation of things that look cheap and that you might want to evaluate, the
> answer is probably no. (Because, having decided to do some speculative work
> in the absence of a demand, it might decide it h
[resending this mail from a different address as it didn't seem to get
through the first time. I apologise if you see multiple copies.]
[snip]
> If you're using an eager haskell implementation which does some
> speculative evaluation of things that look cheap and that you might want
> to evaluat
> In your example it's more or less guaranteed that putting "b"
> and "c" will
> never happen, because the result of the combinated IO action
> isn't demanded.
well yes, it was a bad example. i got another answer basically saying
that threading could screw it up (i'm not using thread) as could,
Hi,
> if i say:
>
> foo = do
> putStrLn "a"
> unsafeInterleaveIO (putStrLn "b" >> putStrLn "c")
> putStrLn "d"
>
> is it guarenteed that nothing will happen between putting "b" and "c"?
> that is, while the place/time at which the (putStrLn "b" >> putStrLn
> "c") is unspecified, is it the case
On Friday 29 August 2003 7:23 pm, Hal Daume wrote:
> if i say:
>
> foo = do
> putStrLn "a"
> unsafeInterleaveIO (putStrLn "b" >> putStrLn "c")
> putStrLn "d"
>
> is it guarenteed that nothing will happen between putting "b" and "c"?
> that is, while the place/time at which the (putStrLn "b" >
if i say:
foo = do
putStrLn "a"
unsafeInterleaveIO (putStrLn "b" >> putStrLn "c")
putStrLn "d"
is it guarenteed that nothing will happen between putting "b" and "c"?
that is, while the place/time at which the (putStrLn "b" >> putStrLn
"c") is unspecified, is it the case that the whole thing