Bachelor Course on Functional Programming

Please contact Frank Staals or Matthijs Vákár for any enquiry about the course, mentioning [INFOFP] in the title.

Teaching Objectives

By the end of the course you will be able to

Latest news

2019-10-11: Bonus Assignment information

A gentle reminder that proposals for the bonus assignments should be submitted to Frank Staals or Matthijs Vákár before before 12 October 2019. The final video should be submitted before Sun 10 Nov 23:59.

2019-09-27 : More about the Bonus Assignment

You can find more information and some examples for the Bonus assignment here.

2019-09-27 : Extra point-free style exercises

One of you requested some extra exercises to practice programming in point-free style. You can find a list of expressions to translate into point-free form here. Solutions to these exercises can be found here.

2019-09-26 : Extra type inference exercises

Jip, one of our TAs’, has compiled a document with extra exercises to practice type inference questions. You can find his exercises here.

2019-09-26 : Optional Bonus Assignment

To receive extra credit (see Description/Grading for precise grading scheme) we encourage you to work in pairs to make a 5-10-minute video about a Haskell package or language extension. The point of the video will be to explain the purpose of the package/extension as well as to give examples of how to use it. The video should be able to serve as a how-to guide for others getting started with Haskell. You can think of the target audience as your co-students.

You can find an overview of Haskell packages on Hackage and of language extensions in the GHC documentation.

If you have a package or extension in mind that you would like to make a video about, please contact Frank Staals or Matthijs Vákár to ensure that the choice is appropriate.

2019-09-05 : GHC Instalation Instructions

Jip, one of our TAs’, has written detailed instructions on how he set up his windows machine for Haskell development. You can find his guide here.

For OS X (High Sierra or newer) these detailed instructions on how to set up your system may be useful.