Курс Raku / Додаток 🆕 / Порядок виконання та функції / Підпрограми та функційний стиль / Вправи / Композиція двох функцій
Розв’язання: Композиція двох функцій
Ось одне з можливих розв’язань задачі.
Код
sub compose(&f, &g) {
return -> $x { f(g($x)) };
}
my $combined = compose(* * 2, * + 1);
say $combined(5);🦋 Знайдіть програму у файлі compose.raku.
Вивід
12Коментарі
Параметри
&fта&gприймають будь-що викличне — тут це функції з Whatever* * 2та* + 1.composeповертає свіжу анонімну функцію-> $x { f(g($x)) }. Виклик її на5спершу запускаєg(5 + 1), потімf(6 * 2), даючи12.