Курс Raku / Розширені / Підпрограми / Анонімні підпрограми / Вправи / Потроїти
Розв’язання: Потроїти
Ось можливий розв’язок завдання.
Код
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.
Навігація курсом
← Потроїти | Анонімний квадрат →