02157 Functional Programming

Functional programming is a declarative programming paradigm, where programs are considered as mathematical functions (side effects, i.e. state changes, are avoided) and the main method of computation is the application of functions to arguments. Functional programming techniques and functional programming languages support the design and construction of programs at a high level of abstraction. Functional programming techniques once mastered are useful for the design of programs in imperative and object-oriented languages as well. Examples of functional programming languages are:

Functional programming languages are widely used in research projects. In an industrial context, the perspective of using a functional programming language is competition on time-to-market, as program design and construction results in much more succinct programs than those achieved using common main-stream technologies. The development time is much shorter as well. Furthermore, due to excellent compilers, this can be done without compromising efficiency, as the OCaml compiler, for example, can produce native code, which on a number of benchmarks has performed at least as efficient as C. A number companies from the financial sector in USA are currently changing from C to OCaml technology. Some sources to industrial applications of functional programming:

This course is based on F# using the textbook: Introduction to Programming using F#, Michael R. Hansen and Hans Rischel, Cambridge University Press, 2013.

More details about the course are found here:

  1. Practical information
  2. Course plan
  3. Course description in the DTU-course base
  4. The course 02157 gives the prerequisites for the following courses: 02141 Computer science modelling and 02257 Applied functional programming

Michael R. Hansen, September 1, 2017