Rhodes>Computer Science>Studying>Postgraduate>Honours>Advanced Functional Programming

Advanced Functional Programming (Dr Yusuf Motara)

This module assumes familiarity with the basics of functional programming and expands both breadth and depth of knowledge. There is a strong focus on practicality and applicability, and on using theory to develop robust, error-free programs with a minimum of time and effort. The module goes into depth around programming patterns and techniques, including common monads, embedded domain-specific languages, equational reasoning, and interesting research tracks. Students are also introduced to a range of functional languages and their applications.

Topics covered include:

  • Continuation-passing style
  • Common patterns (e.g. state, reader, writer monads; lenses, prisms)
  • Domain-specific languages
  • Basic type theory
  • Equational reasoning
  • Untyped functional programming
  • Lisp-style macros
  • Functional within dysfunctional: Elm and Nix

Prerequisites: Familiarity with a typed functional programming language (e.g. Haskell, F#, Scala, etc.) and the principles underlying functional programming practice (immutability, first-class functions).

Last Modified: Tue, 24 Feb 2026 15:40:00 SAST