
On Wed, Aug 20, 2008 at 1:49 AM, Henning Thielemann
On Mon, 18 Aug 2008, ajb@spamcop.net wrote:
G'day all.
Quoting Bjorn Buckwalter
: I'd store the constants in a data structure along the lines of:
data AstroData a = AstroData { mu_Earth :: GravitationalParameter a , leapSeconds :: LeapSecondTable }
I would like to know if there is any consensus on what is the best way to make such a data structure accessible in pure functions. Passing it explicitly would be a mess.
In this situation, there isn't necessarily any shame in using a top-level unsafePerformIO as long as it's well-hidden:
module AstroData (AstroData(..), globalAstroData) where
data AstroData = AstroData Int
But here my argument about playing around with the Planck constant becomes relevant. _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
You can always change how you unsafePerformIO the data, though. If you want to set Planck's constant to 42 (or whatever), just change the unsafePerformIO $ <whatever> to unsafePerformIO $ return 42. Alex