Я новичок в haskell, и я изучаю LearnYouAHaskell. Я просто не могу понять причину оператора (>>)
.
Реализация по умолчанию:
(>>) :: (Monad m) => m a -> m b -> m b
m >> n = m >>= \_ -> n
Что (насколько я понимаю) игнорирует первое значение и возвращает второй. Однако из примера в LearnYouAHaskell это происходит:
ghci > Ничего → Просто 3
Ничего
ghci > Просто 3 → Ничего Ничего
Поэтому он не игнорирует первое значение. Тем не менее, из небольшого исследования я нашел эту цитату из здесь
Оператор связывания функции → игнорирует значение его первого действия и возвращает в качестве общего результата результат только его второго действия.
Итак, я озадачен об использовании этого оператора, и я хочу задать 2 вещи:
- Что это на самом деле делает?
- Когда это полезно?