Lambda, map, filter, reduce (funktionsprogrammering)
It A · STX · A-niveau · Avanceret programmering
💻 Lambda, map, filter, reduce (funktionsprogrammering)
Funktionsprogrammering behandler beregning som evaluering af matematiske funktioner — undgår state-changes og mutable data.
First-class functions: funktioner er objekter, kan sendes som argumenter og returneres.
Lambda-udtryk (anonyme funktioner): f = lambda x, y: x + y svarer til def f(x,y): return x+y. Nyttige til kortvarige transformationer.
Map: anvender funktion på hvert element i en sekvens. map(str.upper, ['hej', 'verden']) → ['HEJ', 'VERDEN'].
Filter: beholder elementer der opfylder en betingelse. filter(lambda x: x>0, [-1,2,-3,4]) → [2,4].
Reduce (fra functools): aggregerer en liste til énværdi. reduce(lambda acc, x: acc+x, [1,2,3,4]) → 10.
Listforståelser (Python): [x**2 for x in range(10) if x%2==0] — kompakt alternativ til map+filter.
Pure functions: ingen bieffekter — output afhænger kun af input. Nemmere at teste og debugge.
Immutability: undgå at ændre data — skab nye objekter.
Funktionelle rammer: Haskell, Erlang, F# er rent funktionelle. Python, JavaScript og Scala er multi-paradigme.
Læringsmål
- Implementere OOP (klasser, arv, polymorfi, enkapsulering)
- Anvende rekursion og memoization
- Implementere og forklare Big-O for centrale datastrukturer
- Implementere merge sort og quicksort
- Anvende BFS og DFS på grafer
Sådan kan du arbejde med emnet
- Brug map() og filter() til at tage en liste tal fra 1-20, filtrere ligetal fra og fordoble de resterende
- Skriv det samme som opgave 1 med list comprehension og sammenlign læsbarheden
- Forklar, hvad reduce() gør, og brug det til at beregne produktet af en liste med tal
Arbejd iterativt med prototyper og dokumentation. Test, evaluér og dokumentér.
Øv dette emne med AI — quizzer, forklaringer og feedback tilpasset dit niveau.
Prøv Fagportalen gratis