Cursus Raku / Functioneel, concurrent, reactief en webprogrammeren / Functioneel programmeren / Hogere-ordefuncties / Subroutines doorgeven
Quiz — Subroutines doorgeven
Wat drukt het volgende programma af?
sub negate($n) { -$n }
sub apply(&f, $x) {
f($x);
}
say apply(&negate, 7);| 1 | -7 |
| 0 | 7 |
| 0 | 0 |
| 0 | &negate |
Een benoemde subroutine wordt met de sigil &
meegegeven, dus &negate overhandigt de subroutine zelf
aan apply in plaats van haar aan te roepen. Binnenin draait
f(7) haar, wat -7 geeft.