На днях я наткнулся на оператора, -<
, появляющегося в контексте привязки значения к переменной в монаде; в частности, похоже, что это передает значение функции, которая затем назначается (и, возможно, оценивается?) на переменную, существующую в области монады.Какая черта «- <», так или иначе?
Пример использования:
myMonad = do
myVar <- f -< x
Несколько вопросов по этому поводу: Во-первых, что это называется? Сам оператор несовместим (Google не любит <
или >
), и одно имя, которое я нашел, «arrow application», обычно ссылается на the other kind of Arrow
present in Haskell, что кажется несвязанным.
Во-вторых, почему этот оператор не объясняется в большинстве учебных ресурсов там? Ни «Нежное введение в монады», ни LYAH не дают его столько, сколько упоминание, и большинство списков операторов Haskell тоже этого не делают. (Является ли это плохой практикой?)
И, наконец, это эквивалентно использованию круглых скобок, как в, (myVar <- f -< x) == (myVar <- (f x))
? Или это больше похоже на использование let myVar = (f x)
? В любом случае, если это так, как использовать, зачем использовать -<
над parens или $
?
при поиске символов, [hoogle] (https://www.haskell.org/hoogle/?hoogle=-%3C) и [hayoo] (http://hayoo.fh-wedel.de/?query = -% 3C) - ваши друзья. – rampion