кодесурса
«PHP

Упражнения на PHP: функция Curry принимает аргументы в нескольких вызовах

script1adsense2code
script1adsense3code

PHP: упражнение-100 с решением

Напишите PHP-программу для карри функции, которая принимает аргументы в нескольких вызовах.

Пример решения: -

PHP-код:

<?php
//Licence: https://bit.ly/2CFA5XY
function curry($function)
{
    $accumulator = function ($arguments) use ($function, &$accumulator) {
        return function (...$args) use ($function, $arguments, $accumulator) {
            $arguments = array_merge($arguments, $args);
            $reflection = new ReflectionFunction($function);
            $totalArguments = $reflection->getNumberOfRequiredParameters();
            if ($totalArguments <= count($arguments)) {
                return $function(...$arguments);
            }
            return $accumulator($arguments);
        };
    };
    return $accumulator([]);
}
$curriedAdd = curry(
    function ($a, $b) {
        return $a + $b;
    }
);
$add10 = $curriedAdd(10);
var_dump($add10(15)); // 25
  
?>

Пример вывода:

 INT (25)

Блок - схема:

«Блок-схема:

Редактор кода PHP:

Есть другой способ решить это решение? Внесите свой код (и комментарии) через Disqus.

Previous: написать программу PHP, чтобы запоминать заданные функции в памяти.
Далее: написать программу PHP, которая будет вызывать данную функцию только один раз.

Каков уровень сложности этого упражнения?

Новый контент: Composer: менеджер зависимостей для PHP , R программирования


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code