* Alle Datenstrukturen sind inmutable (unveränderlich) - psynonym kann der Leser auf den Begriff persistente Datenstrukturen treffen. In diesem speziellen Fall ist dann meist nicht die Datenbankpersistenz gemeint, sondern die Unveränderlichkeit.
* Partielle Funktionen: Umgangsprachlich sind diese Funktionen nicht für alle Werte definiert z.B. die Division welche als Division durch 0 nicht definiert ist und eine entsprechende Exception werfen sollte.
* Lifting: Durch lifting lassen sich partielle Funktionen in totale Funktionen wandeln. Das funktioniert z.B. durch Rückgabe eines Option welcher einen konkreten Wert oder aber None als Ausprägung annimmt. Alle Werte bei denen Exceptions auftreten würden, werden dann auf None gemappt und die Exceptions silent verschluckt. Daher steht letztlich im Ergebnis für jedes X ein Ergebniswert bereit auch wenn dieser nur None also eine Art undefiniert ist.
* Cyrring erlaubt die Verringerung der Parameteranzahl einer Funktion indem diese als Ergebnis eine Funktion mit der gekürzten Parameterliste zurück liefert. Diese wird dann erneut mit Werten aufgerufen. Achtung: Auf der einen Seite wird die Lesbarkeit der Funktion verbessert, weil nicht mehr so viele Parameter zu übergeben sind aber auf der anderen Seite versteht man den Code auf der Seite des Aufrufers nicht mehr intuitiv, da hier eine Funktion mit Werten aufgerufen und das Ergebnis dann gleich wieder mit Werten aufgerufen wird. Das ergibt nur bei echten Funktionen mit echter Bedeutung Sinn. Zumindest wenn man diese Konstruktionen im Objektorientierten Umfeld einsetzt.
* Memoization: Erster Aufruf der Funktion erzeugt den Wert, weitere Aufrufe geben den gecachten Wert zurück.
* Ciricuit Breaker: Schützt Methodenaufrufe z.B. durch "im Fehlerfall 5x wiederholen, dann nicht mehr".
* Bestimmte Funktionen in Vavr wie z.B. map werden nur im Erfolgsfall ausgeführt und andere nur im Fehlerfall. Der Fehlerfall wird vom Konzept her von der linken Seite bzw. der None Seite, bzw. dem failure bereitgestellt wohingegen der Erfolgsfall von der rechten Seite bzw. der Some Seite bzw. der success Funktion bereitgestellt werden. |
Cheatographer
https://stackoverflow.com/users/story/373498
Metadata
Comments
No comments yet. Add yours below!
Add a Comment
Related Cheat Sheets
More Cheat Sheets by FunThomas424242