Raku-Kurs / Fortgeschritten / Subroutinen / Anonyme Unterprogramme / Exercises / Verdreifachen
Lösung: Verdreifachen
Hier ist eine mögliche Lösung der Aufgabe.
Code
my $factor = 3;
my $scale = -> $x { $x * $factor };
say $scale(7);🦋 Den Quellcode finden Sie in der Datei triple-it.raku.
Ausgabe
21Kommentare
Der Pointy Block verwendet
$factor, eine Variable aus dem umgebenden Gültigkeitsbereich, obwohl er nur einen Parameter$xhat. Das Erfassen solcher Variablen macht ihn zu einer Closure.Mit
$factorgleich3ergibt der Aufruf$scale(7)den Wert21. Ändert man$factor, würde derselbe Block mit dem neuen Wert skalieren:
$factor = 5;
say $scale(7); # 35Da die Closure die Variable erfasst und nicht ihren Wert zum
Zeitpunkt der Erstellung, sieht der spätere Aufruf das aktualisierte
$factor und gibt 35 zurück.