Monads provide a useful way to structure programs in a pure functional language. The FC++ library now implements a few monads, and provides syntax support for "do-notation" and "comprehensions" in arbitrary monads.
Monads are a particularly abstract and difficult topic to explain. Rather than try to explain monads here (and double the size of this document), we refer the reader to the discussion of monads in [McN&Sma03], as well as the documentation about lambda and monads on the FC++ web site [FC++]. For information about monads in general (apart from FC++), a good starting point is this tutorial.
Please note that interface to the monad portion of the library is subject to change (as we gain more experience using monads in C++). This is the only portion of the FC++ library considered "unstable", in that future releases of the FC++ library are likely to break old clients of monads.
|Last revised: October 03, 2003 at 23:27:22 GMT||Copyright © 2000-2003 Brian McNamara and Yannis Smaragdakis|