Курс Raku / Функційне, конкурентне, реактивне та веб-програмування / Функційне програмування / Функції вищого порядку / Вправи / Створіть множник
Розв’язання: Створіть множник
Ось одне з можливих розв’язань задачі.
Код
sub multiplier($n) {
sub ($x) { $x * $n };
}
my &double = multiplier(2);
my &triple = multiplier(3);
say double(7);
say triple(7);🦋 Знайдіть програму у файлі make-multiplier.raku.
Вивід
14
21Коментарі
multiplier(2)повертає підпрограму, що пам’ятає:$nдорівнює2;multiplier(3)повертає окрему підпрограму, що пам’ятає3.Кожна повернена підпрограма тримає власний
$n, тожdouble(7)дає14, аtriple(7)—21: дві незалежні функції, побудовані однією фабрикою.