Computer Science

Faculty of Engineering, LTH

Denna sida på svenska This page in English

Functional Programming

Course News VT20:

20.8.2020: NEW! There will be an exam presentation (tentavisning) on Monday 24th, 13-13.45, done via Zoom ( Mail Jacek in case you plan to attend. You may need to wait a while for your turn, as you will be let in individually from the waiting room.

17.8.2020: NEW! The reexam on August 28th will be done remotely, using Canvas. More info to come by email to those registered.

12.4.2020: I have made a typo (4 times) in the testExpr.hs file in the assignment 3N. Now it is fixed, please reload the zip file if you are unsure where to fix. Thanks Lisa for making me aware of that.

11.4.2020: I have updated the zoom links below to the Wednesday lectures (10-12 the last two weeks). It is, nothing else!

2.4.2020: Links to the class zoom meetings is available on the Class Material page.

31.3.2020: Please consider participating in Hack the Crisis on 3-6 April. Official COVID-19 hackathon in Sweden. An initiative by The Swedish Government. For more information see:

The new COVID-19 virus is testing our country, our society and us as citizens. Everything normal about our daily lives has been put on hold. Life, health, and jobs are threatened.

In this critical moment, our task is to work together as a nation to solve one of the biggest crises of our lifetime. Hack the Crisis is an online hackathon organized by DIGG, Hack for Sweden, Openhack and The Swedish Government.

The mission is to design, test and execute ideas for the future of Sweden and the world. We want to gather creative ideas and develop concepts in an attempt to create solutions helping us make further progress in the ongoing resistance.

This hackathon is a context for all parts of society to contribute – public sector, private sector, academia, non-profit organizations and citizens, who want to join in the fight.

31.3.2020: I suspect that we are done with course/canvas registration. If you cannot reach canvas it means there is some problem with it. Let us know. Otherwise I assume you are able to submit your work through canvas.

27.3.2020: We have a first approximation of the Canvas for the course: EAF95/N40.

This course has common lectures together with EDAF95 Basics of Functional Programming. The corona virus situation forces us to hold all teaching events electronically. I hope to be able to get everything working smoothly but would like to apologize for any glitches than will necessarily occur.

The course consists of lectures (optional), three programming assignments (mandatory) and classes (optional). The schema will follow the one available in timeedit, i.e., fourteen meetings, mostly on Mondays and Wednesdays, 13-15, except the final two weeks when Wednesday lectures migrated to 10-12. The links to zoom meetings for them follow below:

Mondays 13-15

Wednesdays until 6.5 13-15

Wednesdays 13.5, 20.5 10-12

The first meeting is on Monday March 23rd.

If you have possibility, please register in advance at LU Zoom site:

using your STiL identity. You may also download zoom client for meetings in advance and check its functionality.

Before the first meeting please have a look at Erik Meijer's introductory lecture on Functional Programming:


The picture above is taken from

29.09.2019 The results of the reexam (21.08.2019) are finally ready. I am sorry once again for the delay with checking it.

11.09.2019 The results of the reexam (21.08.2019) should be available today, 15 working days after the exam. However, out of those 15 days I have spent ten on involuntary leave in family matters, and 4 on planned business trip. I am sorry for the delay. I expect the exams to be checked until the middle of next week, i.e., by 18th on September.

15.8.2019 The June 2019 exam (and solution suggestions) have been posted on the examination page.

31.5.2019 There is an error in the answer to question 5b in 2018 EDAN40 exam (Ord [a]). Sorry for that. The resulting order is not lexicographic. Sorry.

20.5.2019 Today's lecture on reactive programming is CANCELLED!

3.4.2019 Most of the information on this site should be updated for 2019-incarnation of the course. Please let me know about any omissions, inaccuracies or errors.

28.3.2019 On the following page you may sign up for programming assignment groups (if you need a partner for the programming assignments) and book place in the lab (for EDAF40 students) for one of the three available lab occasions (Monday, Tuesday or Wednesday).

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.

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: 7,5 hp

Course code: EDAN40

Study period: VT2 2020

Schedule: EDAN40 

Course responsible: Jacek Malec

Course assistants: Noric Couderc,
Alexandru Dura,
Sven Gestegård Robertz,
Christian Söderberg

Student representatives: Lisa af Klint, li6285fr-s


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

This one is taken from