[Haskell-cafe] Short circuiting and the Maybe monad
Andrew Coppin
andrewcoppin at btinternet.com
Fri May 16 15:03:31 EDT 2008
Andrew Coppin wrote:
> Janis Voigtlaender wrote:
>> http://wwwtcs.inf.tu-dresden.de/~voigt/mpc08.pdf
>
> "It is well-known that trees with substitution form a monad."
>
> ...OK, I just learned something new. Hanging around Haskell Cafe can
> be so illuminating! :-)
>
> Now, if only I could actually comprehend the rest of the paper... o_O
I'll probably regret this for the rest of my life, but...
As best as I can tell, a monad is essentially a container of some kind,
together with a function that puts stuff into a container, and another
function that maps over the container and combines the results in some
way. That would rather suggest that *any* container type is potentially
a monad of some kind. [Although possibly not a *useful* one...]
Since a tree is a kind of container, yes, it should be a monad. [I'm
still not really sure whether it's "useful".]
Presumably a set monad would work something like the list monad. One
could imagine an array monad [although counting the size of the result
set before allocating the array would seem rather expensive]. Perhaps a
dictionary could be a monad? I'm not precisely sure how that would work.
Hmm, what other kinds of random containers could you make a monad out
of? [And would you bother?]
On the other hand, Maybe is a rather odd kind of container, but a very
useful monad...
More information about the Haskell-Cafe
mailing list