Cursus Raku / Functioneel, concurrent, reactief en webprogrammeren / Functioneel programmeren / Hogere-ordefuncties
Subroutines doorgeven
Om een subroutine als parameter aan te nemen, declareer je haar met
de sigil &. Binnen de body kun je haar dan bij naam
aanroepen:
sub apply(&f, $x) {
f($x);
}
say apply(* + 3, 10); # 13De parameter &f ontvangt een stuk code, en
f($x) roept het aan. Hier gaven we * + 3 mee,
een Whatever-uitdrukking die betekent “tel drie op bij wat je
ook krijgt”, dus berekent apply(* + 3, 10)
13.
Een benoemde subroutine geef je net zo gemakkelijk mee, door ernaar
te verwijzen met de sigil & zodat ze meegegeven en niet
aangeroepen wordt:
sub double($n) { $n * 2 }
sub apply(&f, $x) {
f($x);
}
say apply(&double, 5); # 10Precies zo werken map en grep: het zijn
subroutines die een andere subroutine — jouw blok — aannemen en op elk
element toepassen. Zelf subroutines schrijven die code aannemen maakt ze
net zo flexibel.
Praktijk
Maak de 1 quiz over de inhoud van dit onderwerp.
Cursusnavigatie
← Hogere-ordefuncties | Quiz — Subroutines doorgeven →
💪 Of ga direct naar de oefeningen in deze
sectie.