2016-07-29 3 views
2

Was ist der richtige Weg, um eine lange Kette von komponieren oder Rohrfunktionen zu unterbrechen?Wie zu unterbrechen, eine Komposition oder eine Pipe zu verlassen?

Angenommen, die Kette muss nicht nach der zweiten Funktion ausgeführt werden, weil sie einen ungültigen Wert gefunden hat und die nächsten 5 Funktionen nicht fortgesetzt werden müssen, solange der vom Benutzer übermittelte Wert ungültig ist.

Liefern Sie einen undefinierten/leeren Parameter zurück, so dass der Rest der Funktionen nur prüft, ob kein Wert zurückgegeben wird, und in diesem Fall einfach den leeren Parameter übergeben?

Antwort

3

Ich glaube nicht, dass es einen generischen Weg gibt, damit umzugehen.

Oft sind bei der Arbeit mit algebraic data types Dinge definiert, damit Sie weiterhin Funktionen ausführen können, selbst wenn die Daten, die Sie bevorzugen würden, nicht vorhanden sind. Dies ist eines der äußerst nützlichen Merkmale von Typen wie zum Beispiel Maybe und Either.

Aber die meisten Versionen von compose oder verwandte Funktionen geben Ihnen keinen frühen Escape-Mechanismus. Ramda ist es sicherlich nicht.

Verwandte Themen