История изменений
Исправление x3al, (текущая версия) :
Эмм. Допустим, у тебя есть массив a = [0, 1, 2]; и функция square(x) { return x * 2; }. Что ты сделаешь для того, чтобы заставить square(x) работать с массивом a, не меняя функцию? И чтобы та же функция заработала с, допустим, Maybe(1)?
Суть монад в том, что ты определяешь себе bind/map/lift/что_угодно и после этого твои функции работают с чем угодно.
Исходная версия x3al, :
Эмм. Допустим, у тебя есть массив a = [0, 1, 2]; и функция square(x) { return x * 2; }. Что ты сделаешь для того, чтобы заставить f(x) работать с массивом a, не меняя функцию? И чтобы та же функция заработала с, допустим, Maybe(1)?
Суть монад в том, что ты определяешь себе bind/map/lift/что_угодно и после этого твои функции работают с чем угодно.