Какое преимущество дает нам Monad по сравнению с Applicative?
я прочелэта статья, но не понял последний раздел.
Автор говорит, что Monad дает нам контекстную чувствительность, но можно достичь того же результата, используя только экземпляр Applicative:
let maybeAge = (\futureYear birthYear -> if futureYear < birthYear
then yearDiff birthYear futureYear
else yearDiff futureYear birthYear) <let maybeAge = (\futureYear birthYear -> if futureYear < birthYear
then yearDiff birthYear futureYear
else yearDiff futureYear birthYear) <$> (readMay futureYearString) <*> (readMay birthYearString)
gt; (readMay futureYearString) <*> (readMay birthYearString)
Конечно, без do-синтаксиса это ужаснее, но кроме этого я не понимаю, зачем нам Monad. Кто-нибудь может прояснить это для меня?