SUBJECT

Title

Functional programming

Type of instruction

practical

Level

bachelor

Part of degree program
Credits

3

Recommended in

Semester 2

Typically offered in

Spring semester

Course description

The course introduces the concepts of functional programming, computational model and elements of functional programming languages. Students get assignments in programming in Haskell and Clean.

The functional programming paradigm: referential transparency, evaluation, normal form, strictness analysis. The elements of the programming languages Clean and Haskell: function definitions, local definitions, higher order functions, patterns, guards modules. Simple data structures, lists, tuples, records, arrays, ZF expressions, filters. Type systems, polymorph types, algebraic types. Type classes, instances, interactive functional programs.

Readings
  • Plasmeijer,R. et al.:Functional Programming in Clean, July 1999. Draft., http://www.cs.kun.nl/~clean/

  • Thompson, S.: Haskell, The Craft of Functional Programming. Addison-Wesley, 1999.

Recommended literature:

  • Peyton Jones, J., Hughes J., et al.: Report on the Programming Language Haskell 98, A Nonstrict, Purely Functional Language, February 1999.