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
  • Computation expressions
  • 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: Wed, 26 Jul 2023 15:05:15 SAST