Grafting Functional Support on Top of an Imperative Language

Pau D. Anderson paul.d.anderson.removethis at comcast.andthis.net
Mon Apr 7 18:32:47 PDT 2008


Bill Baxter Wrote:

> 
> Hmm, so would it be correct to say that monad is just another way to say 
> 'impure function'?  It sounds like that's all you're saying.  So just 
> like we're going to have 'pure' to isolate the functional code in D, 
> functional languages have 'impure' functions that isolate the 
> procedural/stateful stuff.  They just happen to give those impure 
> functions a ridiculous name.
> 
> Seriously why on earth are they called 'monads'?  Sounds like it derives 
> from "mono" meaning "one", like "triad" is a group of three things.  So 
> 'monad' should mean a group of one thing I would thing.  Yet it means 
> "impure function".  Really odd.  I hate it when people give things 
> terrible non-descriptive names.  But maybe there's a rational explanantion?
> 
> --bb

According to an online dictionary the word derives from the Latin monas as you surmised. I think the meaning is more along the lines of unified or indivisible rather than the number one:

n.
Philosophy. An indivisible, impenetrable unit of substance viewed as the basic constituent element of physical reality in the metaphysics of Leibnitz.
Biology. A single-celled microorganism, especially a flagellate protozoan of the genus Monas.
Chemistry. An atom or a radical with valence 1.
[Latin monas, monad-, unit, from Greek, from monos, single.]

Aren't elements in lisp called atoms?

According to another online source, Epicurus called the indivisible bits that made up the world "monads" while Democritus famously called them "atoms". (In ancient Greek, of course. English wasn't invented for at least twenty years after Epicurus.)

So "monad" is just another word for "atom", a synonym used for the specifiic meaning above, I guess.

Paul





More information about the Digitalmars-d mailing list