Latest change Nov 17, 2025
There is a course book:
Michael R. Hansen, Hans Rischel: Functional Programming Using F#, Cambridge University Press, 2013, ISBN: 9781107684065. The book has a home page.
At the time of writing, the book is also available online through partnerships within the university library here.
The F# community maintains a list of books for learning the language at https://fsharp.org/learn/books.
If you have an interest in functional programming, you may want to check out the language Haskell for which there are also a number of good and pedagogical textbooks: see here.
A curated set of additional reading direction will be provided as part of the course material.
Functional programming for parallelism: MapReduce, and Erlang.
You can download F# for free, to your own computer here. This page contains instructions how to install F# on a number of platforms including Windows, Mac, and linux. Note that if you have Visual Studio (2012 or later), then you already have F# (although it might not be the latest version).
Non-Windows users also need Mono, which is an open implementation of the .NET CLR that allows .NET applications to be run also on non-Windows platforms. Most linux distributions carry Mono, unfortunately often quite old versions. Newer versions can be downloaded here. If you use Ubuntu 14.04 or later (or some Ubuntu derivative) then Mono and F# are included in the distribution, and can simply be installed directly from the software center (or by using a suitable packet manager).
The F# Language Specification.
The Wikipedia Entry on Functional Programming, and F#.
F# Guide (from Microsoft), with F# code formatting guidelines.
FsCheck download and documentation at GitHub.
F# Functional Koans, a way to learn F# through testing.
Erlang is a functional and process-parallel language, originally developed at Ericsson, which is extensively used in real applications.
Scala is a "better java" which integrates element of object-oriented and functional programming languages.
Clojure is a modern LISP dialect.