Buscar..


Sintaxis

  • encierre.memoize ()
  • closing.memoizeAtMost (n)
  • closing.memoizeAtLeast (n)
  • encierre.memoizeEntre (n, m)

Observaciones

La memoización es un método para almacenar en caché el resultado de una invocación de cierre. La función memoize aplicada a un cierre devuelve un nuevo cierre cuyo valor de retorno se almacena en caché de acuerdo con sus parámetros de entrada. Los cachés utilizados para las tres variantes de métodos de memorización modificados son cachés LRU, es decir, el elemento que se utiliza menos recientemente se elimina primero del caché.

Memorización simple

def count = 0

nonmemoized = { long n -> println "nonmemoized: $n"; count++ }

nonmemoized(1)
nonmemoized(2)
nonmemoized(2)
nonmemoized(1)
assert count == 4


def mcount = 0

memoized = { long n -> println "memoized: $n"; mcount++ }.memoize()

memoized(1)
memoized(2)
memoized(2)
memoized(1)
assert mcount == 2


Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow