Computer Science

Faculty of Engineering, LTH

Denna sida på svenska This page in English

Functional Programming

Course News VT17:

27.3.2017: I have set up the sign-up page for both assignments (programming pairs) and classes (times of day, so that the rooms do not get overfilled). Enjoy!

18.3.2017: The course web is not yet properly updated for 2017. Note in particular that: (1) since 2017 the course is given in two incarnations: EDAF40 (5 hp) and EDAN40 (7,5 hp), simultaneously, (2) lecture material will be updated continuously throughout the course, as the lectures are given, and (3) the programming assignments formulation is valid only since the date of the official announcement, not earlier!

The picture above is taken from

26.11.2015: Another case of missing module has been detected: Test.HUnit. To fix it, please follow instructions on the Programming Environment page. Thank you again, Linus!

22.11.2015: A short help for those of you who have problems with System.Random has been put on the Programming Environment page. Thank you Linus!

20.10.2015: Some serious press writes about Haskell usage. And another functional programming goodie from the same source.

19.11.2013: An illustration of the infinite list defined by cats = cat : cats. More of Lambdacats can be found here (thanks, Christoffer).

1.10.2013: Please note that the mail address is used solely for submitting assignments. Any other communication should be attempted directly with a teacher (lecturer or TA).

1.10.2013: A fresh view on Haskell. Enjoy.

1.10.2013: Please note that during the exam you will be given a "cheat sheet" with some Prelude functions, probably all the functions you would need during the exam (maybe except bind:-).

18.12.2011: Some of you have asked about utility of Haskell in "real life". I have just received a link (thanks Christoffer!) to an interesting press release, with, among others, the following piece:

“We are one of the first companies in the world to base our whole product on Haskell. Today Haskell is mainly used for limited applications such as in algorithms developed by Wall Street banks and for US government top security storage, applications where reliability is key. We chose Haskell because we see quality as a top priority. By choosing Haskell, a mathematical language with a steep learning curve, we were hoping to attract the best technical people from around the globe.”, says Lukas Duczko, CEO and founder of Scrive.

The complete announcement.

(N.B. in October 2015 the company still exists and seems to thrive.)

9.11.2011: The programming assignment submissions are read and evaluated by humans. Expect an answer normally within three days, maximally a week. Do not expect an immediate response.

8.11.2011: I sincerely expected that the following reminder is not necessary: the department has defined a policy against plagiarism of any kind, in particular in case of the course work. You may find it following the following links: Samarbete eller fusk (in Swedish) and Cooperation or Plagiarism (in English).

3.11.2011: I have been asked about debugging in Haskell. Probably a good starting point for finding more info is

Course facts

Credits: 5hp or 7,5 hp

Course code: EDAF40 or EDAN40

Study period: VT2 2017

Schedule: Click here! 

Course responsible: Jacek Malec

Course assistants: Christian Söderberg
, Sven Gestegård Robertz

Student representatives:

Formal course description from KA: EDAF40 in Swedish, EDAF40 in English, EDAN40 in Swedish, EDAN40 in English.

This one is taken from