Neulich stieß ich auf einen Operator, -<
, der im Zusammenhang mit der Bindung eines Wertes an eine Variable in einer Monade erscheint; Insbesondere sieht es so aus, als übergebe es einen Wert an eine Funktion, die dann einer Variablen zugewiesen (und möglicherweise ausgewertet?) wird, die im Bereich einer Monade existiert.Was zum Teufel ist "- <", wie auch immer?
Beispiel Nutzung:
myMonad = do
myVar <- f -< x
Ein paar Fragen dazu: zunächst einmal, was heißt es? Der Betreiber selbst ist nicht googlefähig (Google mag keine <
oder >
), und der eine Name, den ich gefunden habe, "arrow application", verweist normalerweise auf the other kind of Arrow
present in Haskell, was nicht verwandt scheint.
Zweitens, warum wird dieser Operator in den meisten Lernressourcen nicht erklärt? Weder die "Sanfte Einführung in die Monaden" noch LYAH geben es so sehr wie eine vorübergehende Erwähnung, und die meisten Listen von Haskell-Operatoren verzichten auch darauf. (Ist es als schlechte Praxis betrachtet?)
Schließlich entspricht dies der Verwendung von Klammern, wie in, (myVar <- f -< x) == (myVar <- (f x))
? Oder ist es eher wie let myVar = (f x)
zu verwenden? In jedem Fall, wenn dies ist, wie es verwendet wird, warum -<
über Parens oder $
verwenden?
bei der Suche nach Symbolen, [hoogle] (https://www.haskell.org/hoogle/?hoogle=-%3C) und [hayoo] (http://hayoo.fh-wedel.de/?query) = -% 3C) sind deine Freunde. – rampion