История изменений
Исправление 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/что_угодно и после этого твои функции работают с чем угодно.