LINUX.ORG.RU

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

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

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

если я тебя понимаю, то это не значит, то, что ты раскрываешь что творится у тебя в голове.

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

блин.. хотел раскрыть свою точку зрения, то ты настолько плохо описал bind, что я уже даже не знаю как это сделать.. Можешь написать так, чтобы это было похоже на правду?

а то получается чушь какая-то

..первый комбинируя функцию (:: a -> m b) и её аргумент (?) (аргумент функции это a, а аргумент у bind m a, что мы с чем комбинируем?) позволяет сделать «эффекты» этой функции зависящими от аргумента.

а то (#) :: a -> (a -> m a) -> m a тоже попадает под твоё определение.

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

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

если я тебя понимаю, то это не значит, то, что ты раскрываешь что творится у тебя в голове.

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

блин.. хотел раскрыть свою точку зрения, то ты настолько плохо описал bind, что я уже даже не знаю как это сделать.. Можешь написать так, чтобы это было похоже на правду?

а то получается чушь какая-то

..первый комбинируя функцию (:: a -> m b) и её аргумент (?) (аргумент функции это a, а аргумент у bind m a, что мы с чем комбинируем?) позволяет сделать «эффекты» этой функции зависящими от аргумента.

а то (#) :: a -> (a -> m a) тоже попадает под твоё определение.