Курс языка программирования Raku / Продвинутый уровень / Подпрограммы / Анонимные подпрограммы / Exercises / Утроить
Решение: Утроить
Вот возможное решение задачи.
Код
my $factor = 3;
my $scale = -> $x { $x * $factor };
say $scale(7);🦋 Исходный код можно найти в файле triple-it.raku.
Вывод
21Комментарии
Остроконечный блок использует
$factor— переменную из окружающей области видимости, — хотя принимает только параметр$x. Захват таких переменных и делает его замыканием.При
$factor, равном3, вызов$scale(7)даёт21. Измените$factor, и тот же блок будет масштабировать на новое значение:
$factor = 5;
say $scale(7); # 35Поскольку замыкание захватывает саму переменную, а не её
значение на момент создания, последующий вызов видит обновлённый
$factor и возвращает 35.
Навигация по курсу
← Утроить | Анонимный квадрат →