Aan het eind van de cursus kunnen studenten:
- Een gegeven probleem oplossen door middel van programma geschreven in een moderne functionele taal zoals Clean of Haskell.
- Voor een gegeven probleem een qua tijd- en ruimtegedrag geschikte datastructuur kiezen.
- Moderne programmeertaalconcepten kennen en inzetten, zoals hogere-orde functies, polymorfie, overloading, recursieve algebraïsche datastructuren zoals lijsten en bomen, alsmede applicative functors en monads.
|
|
Functioneel programmeren is een stijl van programmeren die gebaseerd is op het wiskundige concept “functie”. Door gebruik te maken van (hogere orde) “pure” functies, algebraïsche datastructuren en een sterk maar tevens flexibel typeringssysteem ontstaat een krachtige programmeertaal waarin op compacte en inzichtelijke wijze berekeningen kunnen worden uitgedrukt. Het goed doordachte onderliggende wiskundige berekeningsmodel (lambda-calculus, term-herschrijven) maakt het mogelijk over programma’s te redeneren met behulp van eenvoudige wiskundige technieken zoals substitutie en volledige inductie.
Functionele talen spelen al decennia een vooraanstaande rol in het informaticaonderzoek naar nieuwe (programmeertaal)concepten. Vanwege hun grote uitdrukkingskracht worden ze in toenemende mate gebuikt voor het ontwikkelen van complexe software systemen.
In deze vervolgcursus worden technieken bestudeerd die in bovenstaande context relevant zijn: het construeren van programma's met zij-effecten middels uniqueness typering en monads; het mengen van statische en dynamische typering middels dynamics, de relatie met lambda-calculus en combinatorische logica, en de constructie van interactieve grafische programma's. |
 |
|