[Haskell] "global variables" and code optimization
Jan-Willem Maessen - Sun Labs East
Janwillem.Maessen at Sun.COM
Fri Sep 10 09:34:42 EDT 2004
Keith Wansbrough wrote:
>... [Bernd discusses his problems using unsafeperformIO to generate unique names, and Keith responds]
>
> Why not just thread (newLabelNr :: Int) through your code to the places that need it? If you do this with other things too, then put them in a record. This is a kind of "poor-man's" state monad.
Alternatively, if you're threading something through your program, why
not thread a splittable supply of new names? You can use the supply
to generate fresh identifiers directly, and it all behaves purely
functionally. There's code for unique supplies here:
http://www.csg.csail.mit.edu/~earwig/haskell-lib/index.html
Look down the page for "Arbitrary Splittable Supplies".
-Jan-Willem Maessen
More information about the Haskell
mailing list