Pewnego dnia natknąłem się na operatora, -<
, pojawiającego się w kontekście wiązania wartości do zmiennej w monadzie; w szczególności wygląda na to, że przekazuje wartość do funkcji, która jest następnie przypisywana (i ewentualnie oceniana?) do zmiennej istniejącej w zakresie monady.Co do cholery jest "- <", w każdym razie?
Przykład użycia:
myMonad = do
myVar <- f -< x
Kilka pytań na ten temat: Po pierwsze, co to nazywa? Sam operator jest nieobsługiwalny (Google nie podoba się <
ani >
), a jedyne znalezione przeze mnie "arrow application" zwykle zawiera link do the other kind of Arrow
present in Haskell, który wydaje się niezwiązany z żadną relacją.
Po drugie, dlaczego ten operator nie jest wyjaśniony w większości dostępnych zasobów edukacyjnych? Ani "Delikatne wprowadzenie do monad", ani LYAH nie wspominają o tym tak dobrze, jak tylko przytoczona wzmianka, a większość list operatorów Haskella również to zlekceważy. (Czy jest to uważane za złą praktykę?)
Wreszcie, czy to jest odpowiednik nawiasów, jak w, (myVar <- f -< x) == (myVar <- (f x))
? A może bardziej przypomina korzystanie z let myVar = (f x)
? W obu przypadkach, jeśli tak to jest używane, po co używać -<
nad parens lub $
?
podczas wyszukiwania symboli, [hoogle] (https://www.haskell.org/hoogle/?hoogle=-%3C) i [hayoo] (http://hayoo.fh-wedel.de/?query = -% 3C) to twoi przyjaciele. – rampion