Raku kurss / Pielikums 🆕 / Plūsma un funkcijas / Apakšprogrammas un funkcionālais stils / Exercises / Kompozējiet divas funkcijas
Risinājums: Kompozējiet divas funkcijas
Šeit ir iespējams risinājums uzdevumam.
Kods
sub compose(&f, &g) {
return -> $x { f(g($x)) };
}
my $combined = compose(* * 2, * + 1);
say $combined(5);🦋 Atrodiet programmu failā compose.raku.
Izvade
12Komentāri
Parametri
&fun&gpieņem jebko izsaucamu — šeit Whatever funkcijas* * 2un* + 1.composeatgriež svaigu anonīmu funkciju-> $x { f(g($x)) }. Izsaucot to ar5, vispirms izpildāsg(5 + 1), tadf(6 * 2), dodot12.