Advanced Functional Programming
Beschrijving
The goal of functional programming is to write software that is efficient, scalable, and robust, all while maintaining a high level of abstraction. In this course we will investigate a number of techniques and language features that have been developed to apply functional programming to large-scale software projects. Concretely, we will discuss and apply the following topics:
Efficiency of functional programs: purely functional data structures, controlling lazy evaluation, persistence and amortization, parallel and concurrent functional programming.
Scalability of functional programs: monad transformers, free monads, and effect systems, lenses and optics, embedded domain-specific languages, generic programming.
Robustness of functional programs: type-level programming, generalized algebraic datatypes, refinement types, security types.
In the course project, you will apply these concepts and techniques to implement a type checker for a small language with an advanced type system, such as a dependent type system or an ownership type system.
Reviews0 reviews
Heb jij dit vak gevolgd?
Deel je ervaring met toekomstige studenten. Inloggen met je TU Delft mailadres duurt één minuut.
Schrijf een review