Master’s studies

Syllabus for Functional Programming I

Funktionell programmering I


  • 5 credits
  • Course code: 1DL330
  • Education cycle: Second cycle
  • Main field(s) of study and in-depth level: Computer Science A1N
  • Grading system: Fail (U), 3, 4, 5
  • Established: 2009-03-12
  • Established by: The Faculty Board of Science and Technology
  • Applies from: week 27, 2009
  • Entry requirements: 120 credits with a second course in computer programming. 15 credits in mathematics, including basic algebra.
  • Responsible department: Department of Information Technology

Learning outcomes

In order to pass, the student must be able to

  • list and define the fundamental concepts of functional programming.

  • manually execute a given (simple) functional program.

  • manually infer the type of a given (simple) functional program.

  • implement (simple) algorithms and data structures as functional programs.

  • design (large) functional programs that are modular and have reusable components.

  • explain on a simple problem how functional programming differs from imperative and object-oriented programming.


Fundamental concepts: functions, relations, recursion, tail-recursion, type systems, polymorphism, datatypes, recursive datatypes, introduction to higher-order functions, data abstraction.
Programming in a functional programming language, such as SML.
Similarities and differences with imperative and object-oriented programming.


Laboratory work, if required complemented by lectures.


Assignments. Voluntary written exam for higher grades.

Reading list

Reading list

Applies from: week 27, 2009

  • Hansen, Michael R.; Rischel, Hans Introduction to programming using SML

    Harlow: Addison-Wesley, 1999

    Find in the library

  • Paulson, Lawrence C. ML for the working programmer

    2. ed.: Cambridge: Cambridge Univ. Press, 1996

    Find in the library

  • Ullman, Jeffrey D Elements of ML programming

    ML97 ed.: Upper Saddle River, NJ: Prentice Hall, 1998

    Find in the library