Курс по Raku / Функционално, паралелно, реактивно и уеб програмиране / Функционално програмиране / Функции от по-висок ред / Exercises / Създайте умножител
Решение: Създайте умножител
Ето едно възможно решение на задачата.
Код
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: две независими функции, изградени от една и съща фабрика.