groovy
Closure Memoize Methods
Suche…
Syntax
- Closure.Memoize ()
- Closure.memoizeAtMost (n)
- shutter.memoizeAtLeast (n)
- Closure.memoizeBetween (n, m)
Bemerkungen
Memoization ist eine Methode zum Zwischenspeichern des Ergebnisses eines Abschlussaufrufs. Die auf einen Abschluss angewendete Memoize-Funktion gibt einen neuen Abschluss zurück, dessen Rückgabewert gemäß den Eingabeparametern zwischengespeichert wird. Die für die drei optimierten Varianten von Memoization-Methoden verwendeten Caches sind LRU-Caches, d. H. Das am wenigsten verwendete Element wird zuerst aus dem Cache entfernt.
Einfaches Memo
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
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow