> Pavel G. Zhbanov wrote:
> > Is it even possible to make a "global variable" in Haskell?
> > If yes, how?
>
> The usual fudge is:
>
>       import IORef
>       import IOExts
>
>       globalVar :: IORef Int
>       globalVar = unsafePerformIO $ newIORef 0
>
> However, beware of creating more than one "global variable" of the
> same type. If you enable optimisation, common subexpression
> elimination may result in both names referring to the same IORef.

John Hughes wrote a nice pearl on the subject, see

        http://www.math.chalmers.se/~rjmh/Globals.ps

Cheers, Ralf
_______________________________________________
Haskell-Cafe mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to