You might also find this discussion from Don Syme about the underlying ideas of a computation expression worth your while to read. I can't seem to find it but I do seem to recall something Mr. Syme said about not using the word "monad" precisely because it does have a somewhat scary connotation.

By on 11/16/2010 2:53 AM ()

The official name of the syntax feature in F# seems to be "computation expression", see

Sometimes the syntax is also called "workflow syntax", probably because the most prominent application of the feature in F# are async {...} expressions, which are also called "Async workflows".

Monad is a technical term from type theory that refers to the combination of a parametric type and certain "bind" and "return" operations over instances of that type.

Computation expressions allow you to give operations on a concrete monad a nice syntax.

The main problem with the term "monad" is that a) it's a scary technical term and b) people think they have to understand the abstract concept of a monad before they can use a feature that has "monad" in its name.

By on 11/15/2010 11:29 PM ()
IntelliFactory Offices Copyright (c) 2011-2012 IntelliFactory. All rights reserved.
Home | Products | Consulting | Trainings | Blogs | Jobs | Contact Us
Built with WebSharper