Cursus Raku / Functioneel, concurrent, reactief en webprogrammeren / Functioneel programmeren / Hogere-ordefuncties / Exercises / Maak een vermenigvuldiger
Oplossing: Maak een vermenigvuldiger
Hier is een mogelijke oplossing voor de taak.
Code
sub multiplier($n) {
sub ($x) { $x * $n };
}
my &double = multiplier(2);
my &triple = multiplier(3);
say double(7);
say triple(7);🦋 Je kunt de broncode vinden in het bestand make-multiplier.raku.
Uitvoer
14
21Opmerkingen
multiplier(2)geeft een subroutine terug die onthoudt dat$n2is;multiplier(3)geeft een aparte subroutine terug die3onthoudt.Elke teruggegeven subroutine houdt haar eigen
$n, dus geeftdouble(7)14entriple(7)21— twee onafhankelijke functies gebouwd uit dezelfde fabriek.