Exemple par défaut
fonction 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 ['résultat' => $cache[$key], 'cached' => $cached] ;
} ;
}
$memoizedAdd = memoize(
function ($num) {
return $num + 10 ;
}
) ;
var_dump($memoizedAdd(5)) ; // ['résultat' => 15, 'cached' => false]
var_dump($memoizedAdd(6)) ; // ['résultat' => 16, 'cached' => false]
var_dump($memoizedAdd(5)) ; // ['résultat' => 15, 'cached' => true]
Exemple sombre
fonction 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 ['résultat' => $cache[$key], 'cached' => $cached] ;
} ;
}
$memoizedAdd = memoize(
function ($num) {
return $num + 10 ;
}
) ;
var_dump($memoizedAdd(5)) ; // ['résultat' => 15, 'cached' => false]
var_dump($memoizedAdd(6)) ; // ['résultat' => 16, 'cached' => false]
var_dump($memoizedAdd(5)) ; // ['résultat' => 15, 'cached' => true]
L'exemple de Coy
fonction 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 ['résultat' => $cache[$key], 'cached' => $cached] ;
} ;
}
$memoizedAdd = memoize(
function ($num) {
return $num + 10 ;
}
) ;
var_dump($memoizedAdd(5)) ; // ['résultat' => 15, 'cached' => false]
var_dump($memoizedAdd(6)) ; // ['résultat' => 16, 'cached' => false]
var_dump($memoizedAdd(5)) ; // ['résultat' => 15, 'cached' => true]
Exemple funky
fonction 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 ['résultat' => $cache[$key], 'cached' => $cached] ;
} ;
}
$memoizedAdd = memoize(
function ($num) {
return $num + 10 ;
}
) ;
var_dump($memoizedAdd(5)) ; // ['résultat' => 15, 'cached' => false]
var_dump($memoizedAdd(6)) ; // ['résultat' => 16, 'cached' => false]
var_dump($memoizedAdd(5)) ; // ['résultat' => 15, 'cached' => true]
Exemple d'Okaidia
fonction 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 ['résultat' => $cache[$key], 'cached' => $cached] ;
} ;
}
$memoizedAdd = memoize(
function ($num) {
return $num + 10 ;
}
) ;
var_dump($memoizedAdd(5)) ; // ['résultat' => 15, 'cached' => false]
var_dump($memoizedAdd(6)) ; // ['résultat' => 16, 'cached' => false]
var_dump($memoizedAdd(5)) ; // ['résultat' => 15, 'cached' => true]
Exemple de lumière solarisée
fonction 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 ['résultat' => $cache[$key], 'cached' => $cached] ;
} ;
}
$memoizedAdd = memoize(
function ($num) {
return $num + 10 ;
}
) ;
var_dump($memoizedAdd(5)) ; // ['résultat' => 15, 'cached' => false]
var_dump($memoizedAdd(6)) ; // ['résultat' => 16, 'cached' => false]
var_dump($memoizedAdd(5)) ; // ['résultat' => 15, 'cached' => true]
Exemple de demain soir
fonction 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 ['résultat' => $cache[$key], 'cached' => $cached] ;
} ;
}
$memoizedAdd = memoize(
function ($num) {
return $num + 10 ;
}
) ;
var_dump($memoizedAdd(5)) ; // ['résultat' => 15, 'cached' => false]
var_dump($memoizedAdd(6)) ; // ['résultat' => 16, 'cached' => false]
var_dump($memoizedAdd(5)) ; // ['résultat' => 15, 'cached' => true]
Exemple de soirée
fonction 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 ['résultat' => $cache[$key], 'cached' => $cached] ;
} ;
}
$memoizedAdd = memoize(
function ($num) {
return $num + 10 ;
}
) ;
var_dump($memoizedAdd(5)) ; // ['résultat' => 15, 'cached' => false]
var_dump($memoizedAdd(6)) ; // ['résultat' => 16, 'cached' => false]
var_dump($memoizedAdd(5)) ; // ['résultat' => 15, 'cached' => true]