[Haskell-beginners] purely functional (non-monadic) alternativesfor Haskell animations in _The Haskell School of Expression_?

Bayley, Alistair Alistair.Bayley at invesco.com
Wed Aug 13 08:43:22 EDT 2008

> From: beginners-bounces at haskell.org 
> [mailto:beginners-bounces at haskell.org] On Behalf Of Chaddaï Fouché
> 2008/8/13 Benjamin L. Russell <DekuDekuplex at yahoo.com>:
> >>P.S. Yes, I have read Paul's book and I think Haskell has something
> >>to it.
> >>You may be surprised to learn, however, that world.ss animations are
> >>purely functional while Haskell animations (in Paul's book) 
> are actually
> >>quasi-imperative. That is, they are using monads and carry the
> >>imperativeness
> >>on their sleeves.
> >
> > In response to this claim, does anybody know how to rewrite Hudak's
> > SOE animations so that they do not use monads and are "purely
> > functional?"
> First, monad /= imperative
> It is important to establish this distinction which doesn't seem to be
> very clear in some minds...

I think Matthias Felleisen probably understands this, but I could be wrong...

I had a quick scan of the SOE source and it looks as though all of the graphics operations are in IO (). I don't see why you couldn't rearrange it so that describing shapes was purely functional, while rendering was still IO () (required by OpenGL, I assume), but it looks like it could be quite a bit of work.

For animation, perhaps look at Conal Elliot's functional reactive work, but I don't know how usable it is:

Confidentiality Note: The information contained in this message,
and any attachments, may contain confidential and/or privileged
material. It is intended solely for the person(s) or entity to
which it is addressed. Any review, retransmission, dissemination,
or taking of any action in reliance upon this information by
persons or entities other than the intended recipient(s) is
prohibited. If you received this in error, please contact the
sender and delete the material from any computer.

More information about the Beginners mailing list