Functional Programming

Functional programming uses abstract mathematics - algebra and logic - to make software more reliable and more productive. Originally developed within specialized functional programming languages (e.g. LISP, Scheme, ML, Haskell), Functional Programming today is a general methodology that has given inspiration to new features in other languages (e.g. C++, Java, Python) as well as large-scale data processing techniques (e.g. MapReduce, TensorFlow).

Our department has been in the forefront of functional programming since the 1980’s and led the development of a large variety of tools. The current activities include
  • Compilers and type systems
  • Parallel programming
  • Hardware design and verification
  • Property based testing: QuickCheck
  • Theorem provers and model checkers: Paradox
  • Domain-specific languages
  • Natural language processing: Grammatical Framework
  • Web programming: Haste

For students, we offer several courses on functional programming on both elementary and advanced levels.

Published: Wed 14 Dec 2016. Modified: Tue 11 Jul 2017