Класс Monad
определяет метод >>
, который последовательно выполняет два монадических действия:
>> :: Monad m => m a -> m b -> m b
Оператор привязки >>=
имеет эквивалент с переворотом аргумента, =<<
; как и команды монадической функции ( "рыбы" ) >=>
и <=<
. Кажется, что нет <<
, хотя (через несколько минут Hoogling). Почему это?
Изменить: я знаю, что это неважно. Мне просто нравится, как некоторые строки кода выглядят с помощью указателей слева. x <- doSomething =<< doSomethingElse
просто выглядит лучше, при этом все стрелки идут одинаково, чем x <- doSomethingElse >>= doSomething
.