ha god förståelse för de grundläggande principerna för funktionsprogrammering
förstå de praktiska konsekvenserna av skillnaderna mot traditionell programmering
kunna de vanliga idiomen i funktionsorienterad programmering
förstå funktionen och fördelarna hos ett avancerat typsystem
Färdighet och förmåga
kunna läsa program skrivna i ett modernt funktionellt programmeringsspråk
kunna utnyttja den funktionsorienterade paradigmens möjligheter till att skriva program i ett modernt funktionellt programmeringsspråk
kunna utföra typanalys av uttryck i ett modernt funktionellt programmeringsspråk
Värderingsförmåga och förhållningssätt
ha utvecklat sin förmåga att använda programkod som kommunikationsmedium mellan människor
Kursinnehåll
Funktionsspråkens filosofi och möjligheter. Introduktion till ett modernt funktionsprogrammeringsspråk. Funktionella språkkonstruktioner och idiom. Högre ordningens funktioner. Lat evaluering och oändliga datastrukturer. Polymorfa typsystem. Typanalys och typhärledning.
Förutsättningar
EDAA01 Programmeringsteknik - fördjupningskurs eller EDAA30 Programmering i Java - fortsättningskurs
Förutsatta förkunskaper:
FMAA05 Endimensionell analys och FMAB20 Linjär algebra alternativt FMAA50 Matematisk analys och FMAA55 Matematik, linjär algebra alternativt EDAA40 Diskreta strukturer i datavetenskap. Studenten förväntas ha grundläggande förståelse för matematiska funktioner, kunna hantera funktionssammansättning och induktionsbevis.