Functional Programming in the Real World

Here is a list of functional programs applied to real-world tasks. The main criterion for being real-world is that the program was written primarily to perform some task, not primarily to experiment with functional programming. Functional is used in the broad sense that includes both `pure' programs (no side effects) and `impure' (some use of side effects). Languages covered include CAML, Clean, Erlang, Haskell, Miranda, Scheme, SML, and others.

Further entries are solicted. To submit an entry, please copy the HTML source of this sample and fill in your own details, then send by email to the address below. If in doubt whether your application is suitable for the list, please ask.

This list was originally inspired by a Dagstuhl workshop in May 1994 on Functional Programming in the Real World, organised by Robert Giegerich and John Hughes. The list was originated by Philip Wadler, who currently maintains it. Thanks are due to our previous maintainers, Andy Gill and Jonathan Hogg.

Others lists of FP uses and success stories:

Quite a few libraries exist for various languages, many of which include some impressive real-world applications. Have a look at:

Many theorem provers and other systems for mathematics by computer make use of functional languages. Have a look at:

For more on FP, see the Functional Programming FAQ.

Philip Wadler



Compilers, Interpreters and Partial Evaluators

Syntax Tools

Theorem Provers and Reasoning Assistants

Mathematical aids

Network Toolkits and Applications

Natural Language Processing and Speech Recognition

Numerically Based Applications

Analysis Tools


Database Systems

Operating Systems

Light and sound

Games and Novelties