Курс языка программирования Raku / Функциональное, конкурентное, реактивное и веб-программирование / Функциональное программирование / Функции высшего порядка / Возврат подпрограмм
Тест — Функции высшего порядка
Что выведет следующая программа?
sub prefixer($p) {
sub ($s) { $p ~ $s };
}
my &hi = prefixer('Hi, ');
say hi('Bob');| 1 | Hi, Bob |
| 0 | Bob |
| 0 | Hi, |
| 0 | Hi, Hi, |
prefixer('Hi, ') возвращает подпрограмму, которая помнит
приставку и приписывает её к тому, что ей дадут. Сохранённая в
&hi и вызванная с 'Bob', она возвращает
Hi, Bob: возвращённая подпрограмма работает со строками не
хуже, чем с числами.