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 λ-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 be constructed, followed by a contextual analyzer for the same language. Both of these programs will demonstrate how to effectively use monads in applicable situations.


Computer Science; Mathematics

Publication Date


Degree Granted

Bachelor of Arts

Document Type

Senior Independent Study Thesis



© Copyright 2008 Benjamin Strecker