[Haskell] How to make sure that a function is evaluated only once?
axel at kth.se
Thu Dec 21 05:22:53 EST 2006
I have a function with type
f :: Int -> Int -> Int -> Int -> Int -> NRup -> NRdown
and I want to make sure it is evaluated only once for the same set of
arguments but I observe that it is always evaluated several times.
f is implemented in C and called via the FFI. The C function may or may
not be pure. In principle it is but it is convenient to keep some state
for debugging and monitoring.
Anyway, even if it is pure, I want it to evaluate only once for a set of
arguments because of performance.
How can I enforce this?
Is there a GHC option for that?
Is there a way to write the Haskell code to achieve this?
I have asked the same question in the context of FFI, but now it seems to
me this question is not directly related to the FFI.
Phone: +46 8 790 4124, Email: axel at kth.se, Web: www.it.kth.se/~axel
Phone: +46 8 790 4124, Email: axel at imit.kth.se, Web: www.imit.kth.se/~axel
More information about the Haskell