LINUX.ORG.RU

История изменений

Исправление Miguel, (текущая версия) :

взаимно.

Как ты сам сказал, ты меня вполне понимаешь. Так что к чему это было?

я десять раз уже написал, к чему я пишу про аппликативные функторы

Оно от этого не стало относиться к делу.

Можешь ли ты внятно ответить, чем отличается Monad от Applicative и что оно вносит по сравнению с первым.

Да, разумеется. Monad - подкласс Applicative; строгий подкласс, ибо существуют инстансы второго, не являющиеся (и не могущие быть сделанными) инстансами класса Monad. Принципиальное отличие Monad от Applicative состоит в том, что первый, комбинируя функцию и её аргумент, позволяет сделать «эффекты» (в кавычках, чтобы не думать про IO) этой функции зависящими от значения аргумента. Applicative этого не позволяет.

Собственно, всё.

Исходная версия Miguel, :

Можешь ли ты внятно ответить, чем отличается Monad от Applicative и что оно вносит по сравнению с первым.

Да, разумеется. Monad - подкласс Applicative; строгий подкласс, ибо существуют инстансы второго, не являющиеся (и не могущие быть сделанными) инстансами класса Monad. Принципиальное отличие Monad от Applicative состоит в том, что первый, комбинируя функцию и её аргумент, позволяет сделать «эффекты» (в кавычках, чтобы не думать про IO) этой функции зависящими от значения аргумента. Applicative этого не позволяет.

Собственно, всё.