Left
und Right
. Somit ist ein Either entweder ein Left
oder ein Right
. Beide tragen einen Wert mit sich: Left
wird verwendet um im Fehlerfall die Fehlermeldung zu kapseln; Right
wird verwendet, um im Erfolgsfall den korrekten Wert zu kapseln. Durch den Either Type kann so in rein funktionalen Sprache elegant auf Fehler reagiert werden. Dabei gibt es keine Seiteneffekte, wie es ansonsten mit dem throw
Statement in JavaScript geben würde.Left
und Right
sind zwei Funktionen die jeweils einen Wert und zwei Funktionen entgegen nehmen. Beide Funktionen ignorieren eine der beiden übergebenen Funktionen.Left
wendet die linke (erste übergebene) Funktion auf den Parameter x
an und ignoriert die zweite. Right
wendet die rechte (zweite übergebene) Funktion auf den Parameter x
an und ignoriert die erste. Left
und Right
bilden die Basis für einen weiteren Typ, den Maybe Type.null
oder undefined
sind, vermieden werden. Eine Funktion die ein Either zurück liefert hilft dem Anwender an den Fehlerfall zu denken und diesen zu behandeln.eitherTruthy
Funktion erwartet einen Wert und überprüft ob dieser 'truthy' ist. Im Erfolgsfall wird ein Right
mit dem Element zurück gegeben und im Fehlerfall ein Left
mit der entsprechenden Fehlermeldung.eitherNotNullAndUndefined
****Funktion erwartet einen Wert und überprüft ob dieser nicht null oder undefined ist.eitherElementOrCustomErrorMessage
Funktion erwartet eine Fehlermeldung und ein Element. Die Funktion überprüft das Element auf null oder undefined und gibt entweder ein Right
mit dem Wert oder ein Left
mit der übergebenen Fehlermeldung zurück.eitherDomElement
Funktion nimmt eine Id für ein Dom-Element entgegen und gibt ein Either Type zurück. Im Erfolgsfall wird das HTML-Element zurückgegeben sonst eine Fehlermeldung, dass ein solches Element nicht existiert.eitherNumber
Funktion überprüft ob ein Wert vom Typ Integer ist.eitherNaturalNumber
Funktion überprüft ob der übergebene Wert eine natürliche JavaScript-Zahl ist.eitherFunction
Funktion überprüft ob ein Wert vom Typ function ist.eitherTryCatch
Funktion nimmt eine Funktion f
entgegen, die schief gehen könnte. Diese Funktion wird in einem try-catch Block ausgeführt. Wenn ein Fehler auftritt während der Funktionsausführung wird dieser gefangen und es wird ein Left
mit der Fehlermeldung zurückgegeben, ansonsten ein Right
mit dem Resultat.throw
werfen abzufangen und diese in die Welt der funktionalen Programmierung einzubetten. Somit fungiert diese Funktion als Brücke von der JavaScript Welt in die Welt der funktionalen Programmiersprachen.eitherElementsOrErrorsByFunction
nimmt als ersten Parameter eine Funktion und als zweiten Parameter einen Rest Parameter (JavaScript Rest Parameter). Die Funktion die übergeben wird sollte einen Wert entgegen nehmen und ein Either Type zurückgeben. Die Funktion eitherElementsOrErrorsByFunction
wendet dann die übergebene Funktion auf jeden Wert an der durch den Rest Parameter übergeben wurde. Zurück kommt ein Either. Im Erfolgsfall (Right) bekommt der Anwender eine ListMap mit allen "Erfolgs" -Werten. Im Fehlerfall bekommt der Anwender ein Stack mit allen Fehlermeldungen die aufgetreten sind.Left
mit den Fehlermeldungen zurückgegeben.