Курс 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

Коментарі

  1. multiplier(2) повертає підпрограму, що пам’ятає: $n дорівнює 2; multiplier(3) повертає окрему підпрограму, що пам’ятає 3.

  2. Кожна повернена підпрограма тримає власний $n, тож double(7) дає 14, а triple(7)21: дві незалежні функції, побудовані однією фабрикою.

Навігація курсом

Створіть множник   |   Фільтрація блоком