Alles * sonst * ähnlich wie Haskell $ in F # außer |?

8

Ich weiß, dass es den Back-Pipe-Operator (<|) gibt, auf den in mehreren anderen SO-Antworten verwiesen wird. Aber das funktioniert nicht gut, wenn es mit den Forward Pipes (|>) kombiniert wird, was bei der Verkettung üblich ist. Ich suche jedoch nach verwandten Optionen. Gibt es eine eingebaute Version der folgenden Funktionsdefinition? Oder ist das eine schlechte / gefährliche Praxis?

%Vor%     
Dax Fohl 25.03.2016, 12:50
quelle

1 Antwort

8

Es gibt einige Haskell-Funktionen, wie das optionale Infixing mit Backticks und Abschnitte , die in F # nicht verfügbar sind. Das macht bestimmte Konstrukte ein wenig ausführlicher.

Normalerweise würde ich einfach eine Pipe mit Funktionen wie oben beschrieben schreiben:

%Vor%

Dies ist meiner Meinung nach viel lesbarer. Wenn ich zum Beispiel Seq.filter ^% (>) 2 verwende, würde ich intuitiv lesen , was "alle Werte größer als 2" bedeutet, aber das ist nicht das, was es tut:

%Vor%

Wenn Sie den Leser des Codes im Zweifel darüber lassen, was der Code tut, haben Sie gerade alle weniger produktiv gemacht. Die Verwendung von Seq.filter (fun x -> x < 2) kann ausführlicher aussehen, ist aber für den Leser eindeutig.

    
Mark Seemann 25.03.2016, 13:20
quelle

Tags und Links