[Haskell] threading mutable state through callbacks
Vincenzo Ciancia
vincenzo_mlRE.MOVE at yahoo.it
Tue Oct 12 18:46:27 EDT 2004
On Wednesday 13 October 2004 00:00, Adrian Hey wrote:
> Unfortunately, in this case the whole point of what people are trying
> to do with unsafePerformIO is to allow these things to be visible at
> the top level :-)
Sometimes I get too much involved in what I think about, and forget the
original goal :) A little _too_ naive, it seems, I apologize. So it's
like the original idea, that using these toplevel IO bindings one has
to impose an order of evaluation over all program bindings, which
surely is against the current meaning of haskell programs, e.g. if I
say
conf <- readMyConfFile
init = fn conf
people would agree that the correct meaning is to first evaluate all of
the IO bindings and then the rest of the program:
x1 <- a1
...
xn <- an
v1 = expr1
...
vn = exprn
main = action
should be equivalent to
main = do
x1 <- a1
...
xn <- an
let v1 = expr1
...
vn = exprn in
action
This would not change the meaning of a standard haskell program I think
(but I am not an expert as you see). Am I wrong? Could this be done
with a preprocessor? Why not?
V.
More information about the Haskell
mailing list