… erung: JayMo-Flow (Follow the Flow) / Proc & Tee

Proc & Tee

Mit "proc" und "tee" lassen sich ohne Unterbrechung einer Verarbeitungskette extra Befehle ausführen.

Tee

"tee" funktioniert wie ein T-Stück. Das aktuelle Objekt wird am Ende unverändert weiter gegeben.

5.print.tee( 'a'.print ).print

Die Ausgabe von diesem Beispiel ist:

5
a
5

Der Befehl "'a'.print" wird hier mit ".tee()" in die Verarbeitungskette eingefügt. Wobei die Verarbeitungskette dadurch nicht verändert wird, da "tee" den vorherigen Wert (5) an die nachfolgende Funktion (print) weitergibt.

Proc

"proc" steht für "Process", also eine Verarbeitung. So wird nach dieser Verarbeitung mit dessen Endergebnis fortgefahren.

5.print.proc( 'a'.print ).print

Die Ausgabe ist in diesem Fall:

5
a
a

Aktuelles Objekt

Mit "cur" lässt sich in "proc" oder "tee" auch das aktuelle Objekt verwenden. Hierzu wird "cur" als Basis-Objekt verwendet.

5.print.proc( cur.add(3).print ).print

Hier wird somit mit dem aktuellen Objekt ein Zwischen-Prozess ausgeführt und mit dessen Ergebnis im aktuellen Stream fortgefahren.

Ausgabe:

5
8
8

Weitere Beispiele:

3.proc( cur + 4 ).print
3.tee( cur + 4 ).print

Während bei "proc" nun 7 ausgegeben wird, gibt die zweite Zeile mit "tee" die 3 aus.

Benutzung mit VarLet

"proc" und "tee" können auch mit zwei Argumenten aufgerufen werden. So wird einerseits eine Variable (VarLet) übergeben, worin das aktuelle Objekt gespeichert wird, andererseits dann der gewünschte Prozess:

3.proc( :a, 4+3*a ).print

Das aktuelle Objekt in der Verarbeitungskette (die 3) wird in der Variable "a" gespeichert und kann so flexibel im nachfolgenden Prozess eingebaut werden.

Ausgabe:

13
- Powered by OghsWiki -

 

 

Unterstützen

Die Entwicklung von "JayMo" wird derzeit nur durch Eigeninitiative ermöglicht.

Erhalten:  0 €