Raku-Kurs / Funktionale, nebenläufige, reaktive und Web-Programmierung / Funktionale Programmierung / Funktionen höherer Ordnung
Subroutinen übergeben
Um eine Subroutine als Parameter aufzunehmen, deklarieren Sie sie mit
der Sigil &. Im Rumpf können Sie sie dann namentlich
aufrufen:
sub apply(&f, $x) {
f($x);
}
say apply(* + 3, 10); # 13Der Parameter &f erhält ein Stück Code, und
f($x) ruft es auf. Hier haben wir * + 3
übergeben, einen Whatever-Ausdruck, der „addiere drei zu dem,
was du bekommst“ bedeutet, apply(* + 3, 10) berechnet also
13.
Eine benannte Subroutine übergeben Sie ebenso leicht, indem Sie mit
der Sigil & auf sie verweisen, damit sie übergeben und
nicht aufgerufen wird:
sub double($n) { $n * 2 }
sub apply(&f, $x) {
f($x);
}
say apply(&double, 5); # 10Genau so arbeiten map und grep: Es sind
Subroutinen, die eine andere Subroutine — Ihren Block — aufnehmen und
auf jedes Element anwenden. Eigene Subroutinen zu schreiben, die Code
aufnehmen, macht sie ebenso beweglich.
Praxis
Lösen Sie 1 Quiz zum Inhalt dieses Themas.
Kursnavigation
← Funktionen höherer Ordnung | Quiz — Subroutinen übergeben →
💪 Oder springen Sie direkt zu den Übungen dieses
Abschnitts.