[Haskell-cafe] Profiling nested case

Mitar mmitar at gmail.com
Fri Jul 18 08:23:41 EDT 2008


On Sat, Jul 12, 2008 at 3:33 AM, Max Bolingbroke
<batterseapower at hotmail.com> wrote:
> If findColor had been a function defined in terms of foldr rather than
> using explicit recursion, then theres a good chance GHC 6.9 would have
> fused it with the list to yield your optimized, loop unrolled,
> version:

My first version was with msum. Is this also covered by this fusion?

(And it is interesting that my own recursion version is faster than
the version with msum. Why?)

> Incidentally, if in your most recent email castRayScene2 was your only
> used of castRay, GHC would have inlined the whole definition into that
> use site and you would have got castRayScene1 back again.

It is a little more tricky. I choose in an IO monad which scene it
will render (selected by a program argument). So at compile time it
does not yet know which one it will use. But there is a finite number
of possibilities (in my case two) - why not inline both versions and
at run time choose one?


More information about the Haskell-Cafe mailing list