Syllabus academic year 2011/2012
(Created 2011-09-01.)
FUNCTIONAL PROGRAMMINGEDAN40
Credits: 7,5. Grading scale: TH. Cycle: A (Second Cycle). Main field: Technology. Language of instruction: The course might be given in English. EDAN40 overlaps following cours/es: EDA120. Optional for: D4, D4pv, F4, F4pv, Pi4, Pi4pv. Course coordinator: Assistant prof. Lennart Ohlsson, Lennart.Ohlsson@cs.lth.se and Associate prof. Jacek Malec, Jacek.Malec@cs.lth.se, Computer Science. Prerequisites: EDAA01 Programming - Second Course or EDA027 Algorithms and Data Structures. Recommended prerequisits: FMA410, FMA420 and FMA430. Assessment: Written examination. To qualify for the exam students must have completed the assignments. The final grade of the course is based on the result of the written examination. Home page: http://cs.lth.se/edan40.

Knowledge and understanding
For a passing grade the student must

Skills and abilities
For a passing grade the student must

Judgement and approach
For a passing grade the student must

Contents
The philosophy behind functional languages. The Haskell language. Language constructs and idiom. Higher order functions. Lazy evaluation and infinite data structures. Monads and monadic computations. Polymorphic type systems and type classes. Type analysis and type inference.

Literature
Web based material. Recommended reference:
Thompson, S: Haskell - The Craft of Functional Programming. 2nd edition. Addison-Wesley 1999. ISBN: 0-201-34275-8.