[Haskell-cafe] ANN: combinatorics

Roman Cheplyaka roma at ro-che.info
Sun Jan 29 11:48:17 CET 2012

* wren ng thornton <wren at freegeek.org> [2012-01-28 23:06:08-0500]
> * Math.Combinatorics.Primes: provides the prime numbers via
> Runciman's lazy wheel sieve algorithm. Provided here since efficient
> algorithms for combinatorial functions often require prime numbers.
> The current version memoizes the primes as an infinite list CAF,
> which could lead to memory leaks in long-running programs with
> irregular access to large primes. I'm looking into a GHC patch to
> allow resetting individual CAFs from within compiled programs so that
> you can explicitly decide when to un-memoize the primes. (In GHCi
> when you reload a module all the CAFs are reset. However, there's no
> way to access this feature from within compiled programs as yet.)

Why not to make it more pure? That is, return a lazy list of Ints (but
not a CAF), which user can throw away by the usual GC means?

The functions from the other modules that use primes would have to be
put in a Reader monad. That would make it a little bit more awkward to
use, but personally I'd prefer that over memory leaks.

Roman I. Cheplyaka :: http://ro-che.info/

More information about the Haskell-Cafe mailing list