Упражнения PHP: Memoize данной функции приводит к памяти
PHP: упражнение 99 с решением
Напишите PHP-программу для запоминания заданных функций в памяти.
Примечание. В вычислениях запоминание или запоминание - это метод оптимизации, который используется главным образом для ускорения работы компьютерных программ путем сохранения результатов дорогостоящих вызовов функций и возврата кэшированных результатов, когда те же входные данные повторяются.
Пример решения: -
PHP-код:
<?php
//Licence: https://bit.ly/2CFA5XY
function memoize($func)
{
return function () use ($func) {
static $cache = [];
$args = func_get_args();
$key = serialize($args);
$cached = true;
if (!isset($cache[$key])) {
$cache[$key] = $func(...$args);
$cached = false;
}
return ['result' => $cache[$key], 'cached' => $cached];
};
}
$memoizedAdd = memoize(
function ($num) {
return $num + 10;
}
);
var_dump($memoizedAdd(5));
var_dump($memoizedAdd(6));
var_dump($memoizedAdd(5));
?>
Пример вывода:
массив (2) { [ "Результат"] => INT (15) [ "Кэшировать"] => BOOL (ложь) } массив (2) { [ "Результат"] => INT (16) [ "Кэшировать"] => BOOL (ложь) } массив (2) { [ "Результат"] => INT (15) [ "Кэшировать"] => BOOL (истина) }
Блок - схема:
Редактор кода PHP:
Есть другой способ решить это решение? Внесите свой код (и комментарии) через Disqus.
Предыдущий: Напишите программу PHP, чтобы создать новую функцию, которая объединяет несколько функций в один вызываемый объект.
Далее: Напишите PHP-программу для карри функции, которая принимает аргументы в нескольких вызовах.
Каков уровень сложности этого упражнения?
Новый контент: Composer: менеджер зависимостей для PHP , R программирования