Lambdas en functies van hogere orde
Geef gedrag door als waarden.
Lambdas en functies van hogere orde is een gratis Android Academy-les op CoddyKit. Dit is les 4 van 4. Je kunt 3 lessen uit dit leerpad gratis volledig lezen — daarna ontgrendelt CoddyKit PRO alle lessen, plus praktische oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Android Academy. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Android Academy bevat in totaal 4 lessen.
Wat is een lambda?
Een lambda is een kleine functie die je inline kunt schrijven zonder er een naam aan te geven.
Je zet deze tussen accolades: { x -> x + 1 }. Met lambdas kun je gedrag net als gegevens doorgeven.
Je hebt ze al gebruikt met map en filter.
Een lambda opslaan in een variabele
Een lambda is een waarde, dus je kunt deze in een variabele opslaan en later aanroepen.
Roep deze aan als een functie, met haakjes.
fun main() {
val square = { x: Int -> x * x }
println(square(5))
println(square(3))
}De it-afkorting
Wanneer een lambda precies één parameter heeft, kun je deze geen naam geven en it gebruiken.
Zo blijven korte lambdas compact en leesbaar.
fun main() {
val nums = listOf(1, 2, 3, 4)
val big = nums.filter { it > 2 }
println(big)
}Meerdere parameters
Een lambda kan meer dan één parameter hebben, gescheiden door komma's vóór de pijl.
De laatste expressie in de lambda is de retourwaarde.
fun main() {
val add = { a: Int, b: Int -> a + b }
println(add(4, 6))
}Functies van hogere orde
Een functie van hogere orde is een functie die een andere functie als parameter gebruikt of een functie retourneert.
Het functietype (Int) -> Int betekent "neemt een Int en retourneert een Int". Zo werken map en filter.
Een functie van hogere orde schrijven
Hier definiëren we applyTwice, die een functie accepteert en deze twee keer uitvoert.
De parameter op heeft het type (Int) -> Int.
fun applyTwice(x: Int, op: (Int) -> Int): Int {
return op(op(x))
}
fun main() {
println(applyTwice(3) { it + 1 })
}Syntaxis voor een afsluitende lambda
Wanneer een lambda het laatste argument is, kun je deze buiten de haakjes plaatsen.
Daarom ziet list.filter { ... } er zo overzichtelijk uit. Beide vormen hieronder zijn gelijk.
fun main() {
val nums = listOf(1, 2, 3)
println(nums.map({ it * 2 }))
println(nums.map { it * 2 })
}Functies met een naam doorgeven
Je kunt een bestaande functie met een naam doorgeven waar een lambda wordt verwacht met ::, een functieverwijzing genoemd.
Zo hoef je logica niet opnieuw als lambda te schrijven.
fun isOdd(n: Int) = n % 2 == 1
fun main() {
val nums = listOf(1, 2, 3, 4)
println(nums.filter(::isOdd))
}Een functie retourneren
Een functie van hogere orde kan ook een functie retourneren. Hier bouwt multiplier een aangepaste vermenigvuldigingslambda.
Dit is een eenvoudige vorm van configuratie.
fun multiplier(factor: Int): (Int) -> Int {
return { it * factor }
}
fun main() {
val triple = multiplier(3)
println(triple(5))
}Lambdas leggen variabelen vast
Een lambda kan variabelen uit de omringende context lezen. Dit heet een closure.
Hier onthoudt de lambda bonus, zelfs nadat deze ergens anders is doorgegeven.
fun main() {
val bonus = 10
val nums = listOf(1, 2, 3)
println(nums.map { it + bonus })
}Waarom lambdas belangrijk zijn op Android
Op Android drukken lambdas callbacks netjes uit. Een listener voor een knopklik is gewoon een lambda die je aan het framework doorgeeft.
Bijvoorbeeld: button.setOnClickListener { showMenu() } voert je code uit wanneer je tikt.
Korte controle
Test je begrip van lambdas en functies van hogere orde.
Samenvatting
Lambdas zijn naamloze inlinefuncties die je tussen accolades schrijft, waarbij je it gebruikt voor één parameter.
Functies van hogere orde nemen functies aan of retourneren deze, waardoor nette callbacks en herbruikbare bewerkingen zoals map en filter mogelijk worden.
Leer Kotlin met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 36
- Lessen
- 152
Veelgestelde vragen
Is de les “Lambdas en functies van hogere orde” gratis?
Ja — je kunt hier op het web alle 3 lessen van het leerpad Android Academy, waaronder “Lambdas en functies van hogere orde”, gratis volledig lezen. Daarna ontgrendelt CoddyKit PRO alle lessen, plus interactieve oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. De cursus Android Academy bevat in totaal 4 lessen.
Wat leer ik in “Lambdas en functies van hogere orde”?
Geef gedrag door als waarden. Je oefent met Android Academy door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met Android Academy te beginnen?
Ervaring vooraf is niet nodig. Android Academy op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 4 van 4.
Hoe lang duurt de les “Lambdas en functies van hogere orde”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over Android Academy?
Ja. Elke les over Android Academy bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.
Alle lessen in deze cursus
- Lijsten en mutable lijsten
- Maps en sets
- map, filter, forEach
- Lambdas en functies van hogere orde