Raku-Kurs / Funktionale, nebenläufige, reaktive und Web-Programmierung / Funktionale Programmierung / Funktionen höherer Ordnung / Subroutinen übergeben
Quiz — Subroutinen übergeben
Was gibt das folgende Programm aus?
sub negate($n) { -$n }
sub apply(&f, $x) {
f($x);
}
say apply(&negate, 7);| 1 | -7 |
| 0 | 7 |
| 0 | 0 |
| 0 | &negate |
Eine benannte Subroutine wird mit der Sigil &
übergeben, &negate überreicht apply also
die Subroutine selbst, statt sie aufzurufen. Drinnen führt
f(7) sie aus, was -7 ergibt.