Introduction to Functional Programming

An introduction to the practice and foundation for functional programming. We first study how to program in OCaml, a language with native support of function programming (also imperative programming). We then study how to implement the underlying theory of functional programming, i.e., λ-calculus in OCaml. We finally choose and work on a non-trivial functional programming project.

Programming in a Functional Programming Language

Setup the Programming Environment

You first need to setup the programming environment, including the operating system and the compiler.

Practice Programming in OCaml

We shall use Real World OCaml as our reference text book for this study. Read the following chapters to get an exposure to the core concepts of OCaml (they should be enough for our purpose, although you are welcome to delve into more advanced topics at your leisure):

λ-Calculus and Abstract Machines

The theoretical underpinning of functional programming is a formal system for symbolic manipulation known as the λ-calculus. We shall study the syntax and semantics of λ-calculus, develop a basic evaluator for it, and develop a series of abstract machines for it in OCaml.

Reading materials:

Functional Programming Projects

Some tentative topics:

Schedule