Ich möchte etwas wie Js Fork-Feature, denke ich. Gibt es eine Möglichkeit, dies zu tun?
Dies ist, unter Verwendung eines sogenannten anwendungsorientierten Stils,
%Vor% mit <$>
und <*>
von Control.Applicative
.
Eine Alternative besteht darin, h
mit
(->) r
zu heben
%Vor%
Die Intuition dahinter ist, dass wenn
%Vor% Damit nimmt die gehobene Version zwei Funktionen r -> something
statt der tatsächlichen something
s und gibt dann r
ein, um die something
s aus den Funktionen zu holen.
Die liftA*
und die entsprechende Kombination von <$>
und <*>
sind äquivalent.
Während @kqr die praktikablere Lösung basierend auf der Applicative
-Instanz für ((->) a)
hat, können wir auch in der "pipey" -Methode darüber sprechen
bietet eine sehr kompositorische Art von Pointfree-Programm. Wir erstellen dieses Programm mit Tools von Control.Arrow
.
Zuerst erhalten wir den rechten Teil unseres Diagramms mit einer gemeinsamen fehlenden Funktion in Haskell namens diag
oder dup
Dann wird die Mitte mit dem (***)
-Kombinator aus Control.Arrow
dann ist die linke Seite genau das, was uncurry
für uns tut
Dann können wir alle x
-Punkte mit einem sehr kompositorischen Stil löschen.