Lambda, map, filter, reduce (funktionsprogrammering)
Kommunikation og IT A · HTX · A-niveau · Avanceret programmering
💻 Funktionsprogrammering
Funktionsprogrammering behandler funktioner som første-klasses borgere — de kan sendes som argumenter og returneres som resultater.
Lambda: anonym funktion på én linje
```python
dobbelt = lambda x: x * 2
print(dobbelt(5)) # 10
```
map: anvend funktion på alle elementer
```python
tal = [1, 2, 3, 4]
dobbelte = list(map(lambda x: x * 2, tal)) # [2, 4, 6, 8]
```
filter: behold elementer der opfylder betingelse
```python
lige = list(filter(lambda x: x % 2 == 0, tal)) # [2, 4]
```
reduce: reducer liste til én værdi
```python
from functools import reduce
produkt = reduce(lambda x, y: x * y, tal) # 24
```
List comprehension (Pythonisk alternativ):
```python
dobbelte = [x * 2 for x in tal]
lige = [x for x in tal if x % 2 == 0]
```
Læringsmål
- Skrive lambda-udtryk og anvende dem med map, filter, reduce
- Omskrive imperativ kode til funktionel stil
- Vurdere hvornår funktionsprogrammering gør koden mere læsbar
- Bruge list comprehensions som pythonisk alternativ
Sådan kan du arbejde med emnet
- Brug map til at kvadrere alle tal i en liste fra 1 til 10
- Brug filter til at finde alle lige tal i en liste, og reduce til at summere dem
- Skriv en lambda-funktion der sorterer en liste af navne efter længde
Træningsforslag
- Omskriv 5 for-løkker til map/filter/list comprehension
- Implementér pipeline-funktioner der kæder map og filter
- Udforsk JavaScript's Array.map(), .filter(), .reduce()
Øv dette emne med AI — quizzer, forklaringer og feedback tilpasset dit niveau.
Prøv Fagportalen gratis