J'ai des doutes, j'ai des affres, sur la suite à donner aux fonctions
de mémoïzation (http://zzz.rezo.net/Memoization.html) ; trois
prototypes sont possibles, chacun avec un usage différent, mais je
n'arrive pas à trouver une forme qui regroupe les trois ; je soumets
donc les possibilités à votre sagacité collective
Option 1
// $r = memoize('recuperer_page', $url);
// problème : où met-on le ttl ?
function memoize($func, $arg1, $arg2...) {
J'ai des doutes, j'ai des affres, sur la suite à donner aux fonctions
de mémoïzation (Mémoïzation - ZZZ) ; trois
prototypes sont possibles, chacun avec un usage différent, mais je
n'arrive pas à trouver une forme qui regroupe les trois ; je soumets
donc les possibilités à votre sagacité collective
Option 1
// $r = memoize('recuperer_page', $url);
// problème : où met-on le ttl ?
function memoize($func, $arg1, $arg2...) {
Entre l'option 1 et 2 il suffit simplement de créer 2 fonctions :
memoize($func, $arg1, $arg2) et
filtre_memoize($arg1, $func, $arg2) {return memoize($func, $arg1, $arg2); }
Mais c'est délicat de passer le ttl effectivement dans les 2 cas.
Oui pour modifier l'option 1 avec tous les arguments dans un array --
ça permet de fixer l'argument suivant comme étant le ttl, et ça reste
relativement lisible ; mais pour le filtre, ce serait super
malpratique de devoir créer un #ARRAY ... ou alors on élimine le ttl
du filtre, et on crée un filtre_memoize_ttl avec un argument de plus
... D'un autre côté, avec une gestion d'invalideurs (pour oublier), on
se moque un peu du ttl, qui peut être infini. Pour l'implémentation
précise, il faut donc discuter ce qu'on veut proposer par défaut comme
invalideur.