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

12

Komentāri

  1. Parametri &f un &g pieņem jebko izsaucamu — šeit Whatever funkcijas * * 2 un * + 1.

  2. compose atgriež svaigu anonīmu funkciju -> $x { f(g($x)) }. Izsaucot to ar 5, vispirms izpildās g (5 + 1), tad f (6 * 2), dodot 12.

Kursa navigācija

Kompozējiet divas funkcijas   |   Augošs uzkrājējs