[Haskell-cafe] random colors, stack space overflow, mersenne and mersenne.pure64

Don Stewart dons at galois.com
Fri Sep 12 22:16:58 EDT 2008


bertram.felgenhauer:
> Cetin Sert wrote:
> [snip]
> > colorR :: RandomGen g ⇒ (RGB,RGB) → g → (RGB,g)
> > colorR ((a,b,c),(x,y,z)) s0 = ((r,g,b),s3)
> >   where
> >     (r,s1) = q (a,x) s0
> >     (g,s2) = q (b,y) s1
> >     (b,s3) = q (c,z) s2
> >     q = randomR
> 
> Look closely at how you use the variable 'b'.

:-) fast eyes.

Btw, Cetin, this is good practice, along with -funbox-strict-fields:

    data RGB = RGB !Int !Int !Int
        deriving Show

Much better code than using a lazy triple.


More information about the Haskell-Cafe mailing list