Was ist der Mehrwert des funktionalen Pattern Design Patterns von Kestrel? (Scala)

8

Ich frage mich, warum es so nützlich ist, den Nebeneffekt-Teil eines Codes mit Kestrel wegzulegen. Hat jemand Erfahrung damit? und kann die wahre Motivation erklären und wie genau es hilft.

Obwohl ich verstehe, dass Pure funktionale Programmierung über Null-Seiten-Effekt und fortan bessere Debugging und Vorhersagbarkeit des Codes ist. Aber im Fall von Kestrel sehe ich nicht, wie es wirklich hilft, das zu tun?

Am besten,

MM -

    
MaatDeamon 22.04.2014, 22:35
quelle

1 Antwort

17

Es geht darum, keine Zwischenvariable zu erstellen, die Sie wahrscheinlich nicht herumliegen lassen wollen, oder zu vermeiden, dass Sie für etwas, das Sie gerade machen, einen neuen Block erstellen müssen. Nehmen wir an, wir haben den Kestrel wie in Ruby:

%Vor%

Nehmen wir nun an, wir haben eine Codezeile:

%Vor%

und wir wollen eine Debugging-Nachricht nach dem Filter ausdrucken. Ohne tap refaktorieren wir diese Zeile zu:

%Vor%

Pfui. Nehmen wir an, wir haben tap :

%Vor%

Puh, viel besser!

Nehmen wir an, wir haben einen Stack mit einer add-Methode, und wir möchten etwas zum Stack hinzufügen, bevor wir ihn woanders verwenden.

%Vor%

Pfui. Aber mit tap :

%Vor%

Sehr praktisch - Sie können damit jede normale Nebeneffekt-Methode in etwas umwandeln, an das Sie Anrufe ketten können. Und da verkettete Anrufe oft einen niedrigeren Standard haben, ist das oft ein großer Gewinn.

    
Rex Kerr 22.04.2014, 22:47
quelle