Kapitel 10. Memoisierung

Diese Arbeit wurde mithilfe von KI übersetzt. Wir freuen uns über dein Feedback und deine Kommentare: translation-feedback@oreilly.com

Die Verwendung reiner Funktionen hat mehr Vorteile als nur vorhersehbare Ergebnisse zu liefern. Zugegeben, das ist eine gute Sache, aber es gibt noch eine andere Möglichkeit, dieses Verhalten zu unserem Vorteil zu nutzen.

Memoization ist ähnlich wie Caching, genauer gesagt wie die Funktion GetOrAdd() aus der Klasse MemoryCache(). Memoization nimmt einen Schlüsselwert an, und wenn dieser Schlüssel bereits im Cache vorhanden ist, gibt es das Objekt zurück. Wenn der Schlüssel nicht vorhanden ist, musst du eine Funktion übergeben, die den benötigten Wert generiert. Anders als beim normalen Caching musst du dich nicht darum kümmern, dass der Cache ungültig wird oder bereits gespeicherte Werte aktualisiert werden. Normalerweise hält die Memoisierung die Werte für die Dauer einer größeren Berechnung fest und verwirft dann alles, was sie gespeichert hat.

Die Memoisierung funktioniert nach demselben Prinzip wie das Standard-Caching, mit dem Unterschied, dass ihr Anwendungsbereich nicht über eine einzelne Arbeitseinheit hinausgeht, z. B. eine einzelne Berechnung. Es ist kein Ersatz für das normale Caching.

Die Memoisierung ist nützlich bei mehrstufigen Berechnungen, die rekursiv sein können oder bei denen dieselben Berechnungen aus irgendeinem Grund mehrfach ausgeführt werden. Am besten lässt sich das anhand eines Beispiels erklären. ...

Get Funktionale Programmierung mit C# now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.