"Making Monads: Binding to a Specific Type of Computation with a Return to Familiar Themes"

Benjamin Strecker 2008


Abstract

In the world of programming, there are many kinds of languages from which to choose. These varied languages each provide some easy solutions to some problems, but there may be other problems that the language inhibits. This thesis examines functional programming, beginning with the lambda calculus and moving up to the functional language Haskell. A mathematical object called a monad will be introduced, and its use will be demonstrated to solve problems that are normally difficult in many functional languages. One specific problem is parsing. A parser for a subset of the toy language Triangle will constructed, followed by a contextual analyzer for the same language. Both of these programs will demonstrate how to effectively use monads in applicable situations.