Курс языка программирования Raku / Функциональное, конкурентное, реактивное и веб-программирование / Функциональное программирование / Функции высшего порядка / Передача подпрограмм

Тест — Передача подпрограмм

Что выведет следующая программа?

sub negate($n) { -$n }

sub apply(&f, $x) {
    f($x);
}

say apply(&negate, 7);
1-7
07
00
0&negate

Именованная подпрограмма передаётся с сигилом &, поэтому &negate отдаёт в apply саму подпрограмму, а не вызывает её. Внутри f(7) её выполняет, что даёт -7.

Навигация по курсу

Передача подпрограмм   |   Возврат подпрограмм