Changing a light bulb.
Jay Cox
sqrtofone@yahoo.com
Thu, 28 Feb 2002 21:48:07 -0600 (CST)
On Thu, 28 Feb 2002, Shawn P. Garbett wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> Now after my earlier soap box tirade I'm trying to put my code where my mouth
> is. >>blush<< It's harder than I thought.
>
> I've broken it down into a State Model of a light bulb. The goal, to find out
> just how much Haskell code does it take to change the state of a light bulb?
>
> Here's a very crippled version. Is there an easy way to introduce state
> without changing the type of main???
Rhe IO monad IS a state monad without fetch and assign.
(I'd hate to see it written in the traditional \s -> (s,v) sense, one
fetch of the state gives you gigabytes of information that is on the
computer, and then you'd have to include at least part of the 2^whatever
bytes on all the other computers on the internet. Oh yeah, did i mention
if you actually interface such a monad with reality, the state would have
to include every bit of information with in the universe! Imagine, all of
that dumped out, all with one single fetch!)
:-)
</Joke>
> I've written a much more complex example, but I got into things like
>
> main :: STT(IO)
>
> using a monad transformer.
I did similar not to long ago on one of these lists, but it was more of an
example of using a monad transformer for another goal.
> So really, the big question is, must I use a monad transformer?
I'm confused as to what your goal is :)
(plus I don't know where your previous post is).
It doesn't seem like all that much code. Much of it is the definition of
the state monad.
Jay Cox