[Haskell-cafe] New (?) Partial Monad

Christopher Lane Hinson lane at downstairspeople.org
Sat Jun 2 15:01:18 EDT 2007


> Can you post any code using the monad? The article was interesting but
> I think it would make more sense if I saw some working code ...
>
> Justin
>

Ok.  I wrote a simple implementation of the procedural texture example. 
This just runs on the CLI, printing the color that would be drawn.

(I don't have the patience right now to implement a graphical version, 
nifty though that would be, because I wrote Partial originally to do the 
same thing with models in OpenGL.  But that example is too complicated 
to be pedagogical, and will probably take days or weeks to write and 
test, modulo free time.)

The example is here, and recall that ".../partial/" is darcs gettable:

http://www.downstairspeople.org/darcs/partial/ProceduralTextureExample.hs

When run, it looks something like this:

> testTexture blue
Color {color_red = 0.0, color_green = 0.0, color_blue = 1.0}

> testTexture $ lighten red
Color {color_red = 1.0, color_green = 0.5, color_blue = 0.5}

> testTexture $ checkerboard yellow blue
Hmmm.  It looks like this texture varies by coordinate.  Enter an x 
coordinate:
0
Enter a y coordinate:
0
Color {color_red = 1.0, color_green = 1.0, color_blue = 0.0}

> testTexture $ checkerboard yellow blue
Hmmm.  It looks like this texture varies by coordinate.  Enter an x 
coordinate:
4
Enter a y coordinate:
3
Color {color_red = 0.0, color_green = 0.0, color_blue = 1.0}



More information about the Haskell-Cafe mailing list