Valid from: Spring 2017
Decided by: Professor Thomas Johansson
Date of establishment: 2017-03-22
Division: Computer Science (LTH)
Course type: Course given jointly for second and third cycle
The course is also given at second-cycle level with course code: EDAN40
Teaching language: Swedish
The course gives an insight into how the functional programming often offers a possibility to write shorter and easier-to-understand programs than using the traditional imperative or object-oriented approaches.
Knowledge and Understanding
For a passing grade the doctoral student must
Competences and Skills
For a passing grade the doctoral student must
Judgement and Approach
For a passing grade the doctoral student must have learnt to appreciate the role of program code as a communication medium between people
The philosophy of functional languages. The programming language Haskell. Language constructs and idioms. Higher-order functions. Lazy evaluation and infinite data structures. Monads and monadic computations. Polymorphic type systems and type classes. Type analysis and type inference
Simon Thompson: Haskell, The Craft of Functional Programming. Addison Wesley, 2011, ISBN: 978-0-201-88295-7. 3rd edition. Recommended reference. Graham Hutton: Programming in Haskell. Cambridge University Press, 2007, ISBN: 978-0-521-69269-4. Recommended reference. Bryan O'Sullivan, John Goerzen and Don Stewart: Real World Haskell. O'Reilly, 2008, ISBN: 978-0-596-51498-3. Recommended reference.
Types of instruction: Lectures, laboratory exercises
Examination format: Written exam
Grading scale: Failed, pass
Examiner:
Assumed prior knowledge: EDAA01 Programming - Second Course or EDAA30 Programming in Java - Second Course
Course coordinators:
Web page: http://cs.lth.se/edan40-functional-programming/