Назад к вопросам
JuniorТеорияЧасто
Что выведет программа?
<?php
function applyTwice(callable $f, int $x): int
{
return $f($f($x));
}
$inc = function (int $n): int {
return $n + 3;
};
echo applyTwice($inc, 1), ' ', applyTwice('abs', -5), "\n";7 5
- Ждать
4, будто$fвыполнится один раз:$f($f($x))вызывает функцию для$x, а потом для результата, поэтому$incприбавляет3дважды. - Ждать
TypeErrorна'abs': строка с именем функции — допустимое значение дляcallable, и её вызов запускает эту функцию.
- Как переписать
applyTwice, чтобы она применяла$fзаданное число раз? - Какие значения, кроме анонимной функции, принимает параметр
callable?