Aufrufen einer Funktion auf einer "Seite" eines Bifunctors abhängig vom Wert eines Booleans

8

Wenn ich eine Instanz von Bifunctor[A,A] bf, eine Funktion f : A => A und eine Boolean Wert p :

habe %Vor%

Wie kann ich das prägnanter (und expressiver) sagen? Grundsätzlich versuche ich eine Funktion auf einer Seite eines bifunctor (z. B. Tuple2 ) abhängig von einem Prädikat aufzurufen. Wenn das Prädikat wahr ist, möchte ich die LHS und die RHS zuordnen, wenn es falsch ist

%Vor%

Da ich Tupel verwenden möchte (im Gegensatz zum allgemeineren Bifunctor ), kann ich pfeil wie folgt : %Vor%     
oxbow_lakes 11.11.2010, 15:49
quelle

3 Antworten

4

Nicht so viel schöner:

%Vor%

Ein bisschen schöner:

%Vor%

Einige Haskell, nur für den Sprachneid:

%Vor%     
Apocalisp 11.11.2010, 18:00
quelle
0

Ist diese Variation auf Apocalisps Lösung funktioniert?

%Vor%

Hinweis: Ich habe das nicht mit scalaz getestet.

    
Aaron Novstrup 11.11.2010 20:02
quelle
0

Bearbeiten: korrigiert, um (A,A) anstelle von A

zurückzugeben

Vielleicht vermisse ich etwas, aber sind das nicht temporäre Variablen? Mit einem normalen Scala-Tupel:

%Vor%

oder

%Vor%     
Rex Kerr 11.11.2010 19:07
quelle