Zoeken…


Syntaxis

  • closure.memoize ()
  • closure.memoizeAtMost (n)
  • closure.memoizeAtLeast (n)
  • closing.memoizeBetween (n, m)

Opmerkingen

Memoisatie is een methode om het resultaat van een sluitingsoproep in het cachegeheugen op te slaan. De memoize-functie toegepast op een sluiting retourneert een nieuwe sluiting waarvan de retourwaarde in de cache wordt opgeslagen volgens de invoerparameters. De caches die worden gebruikt voor de drie getwiste varianten van memo-methoden zijn LRU-caches, dat wil zeggen dat het minst recent gebruikte element eerst uit de cache wordt verwijderd.

Eenvoudige memoisatie

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
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow