Last modified: 2016-10-14
Courses taught by
David Casperson
CPSC 320

CPSC 370
Functional and Logic Programming

Functional and Logic Programming is a third-year course that introduces students to languages outside of the imperative and/or OOP idioms.

When I have taught this course, I have used Standard ML of New Jersey and Scheme as the functional programming languages, and Prolog as the logic programming language.

Some of the concepts that I cover in this course include:

  • tail-call optimisation
  • accumulator arguments
  • Currying
  • static versus dynamic typing
  • Prolog unification (and the occurs check)
  • persistent versus ephemeral data structures
  • pure versus impure functional programming
  • environments and closures
  • cuts