Applikativer Stil für Infix-Operatoren?
-
12-12-2019 - |
Frage
Gibt es eine Möglichkeit, es anwendungsorientiert zu nutzen? <$>
Und <*>
Sehen Sie gut aus, wenn Sie mit Infix-Operatoren arbeiten?ich denke, dass
((++) <$> a <*> ((++) <$> b <*> c ))
Dann sieht es viel aufgeräumter aus
a ++ b ++ c
Daher frage ich mich, ob es einen schöneren Weg gibt.
Lösung
(<++>) = liftA2 (++)
a <++> b <++> c
oder
liftA2 (++) a $ liftA2 (++) b c
Andere Tipps
Siehe Thomas Davies InfixApplicative Paket, das einen allgemeinen syntaktischen Trick bereitstellt, anstatt für jeden Lifting einen neuen Operator definieren zu müssen.
SIE lässt dich schreiben
(|a ++ (|b ++ c|)|)
falls das irgendeinen Nutzen hat.Natürlich ist die Einführung einer Vorverarbeitungsschicht mit einem gewissen Aufwand verbunden.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow