The course goes through partly the programming techniques that are used in functional programming languages, partly how programmes can be divided into several executing threads and how these can be coordinated. Examples of programming techniques are recursive definitions, non-updateable data structures, functions of higher order and so called “closures”. Coordination of multiple threads is shown, partly through modification of common data structures, partly through message passing between processes.
The course will use a programming language as the main language but also show similarities and differences with other functional languages.