Cursus Raku / Addendum 🆕 / Verloop en functies / Subroutines en functionele stijl / Exercises / Stel twee functies samen
Oplossing: Stel twee functies samen
Hier is een mogelijke oplossing voor de taak.
Code
sub compose(&f, &g) {
return -> $x { f(g($x)) };
}
my $combined = compose(* * 2, * + 1);
say $combined(5);🦋 Je kunt de broncode vinden in het bestand compose.raku.
Uitvoer
12Opmerkingen
De parameters
&fen&gaccepteren elke aanroepbare waarde — hier de Whatever-functies* * 2en* + 1.composegeeft een verse anonieme functie-> $x { f(g($x)) }terug. Haar op5aanroepen draait eerstg(5 + 1), danf(6 * 2), wat12geeft.