История изменений
Исправление x3al, (текущая версия) :
И да, нафиг нужны compose/pipe: у тебя есть
MyArray.create([1,2,3]).bind(square).bind(sum).print
MayBe.create(1).bind(square).bind(sum).print
MayBe.create().bind(square).bind(sum).print
bind(square).bind(sum).print
в одну функцию (скажем, f) и потом делать f(MayBe(1)), f(MayBe()), f(MyArray([1, 2, 3])) (или даже f([1, 2, 3]) поскольку map есть у родного JS-массива, а значит он достаточно функтор, bind там нафиг не нужен).Исправление x3al, :
И да, нафиг нужны compose/pipe: у тебя есть
MyArray.create([1,2,3]).bind(square).bind(sum).print
MayBe.create(1).bind(square).bind(sum).print
MayBe.create().bind(square).bind(sum).print
bind(square).bind(sum).print
в одну функцию (скажем, f) и потом делать f(MayBe(1)), f(MayBe()), f(MyArray([1, 2, 3])) (или даже f([1, 2, 3] поскольку map есть у родного JS-массива, а значит он достаточно функтор, bind там нафиг не нужен).Исходная версия x3al, :
И да, нафиг нужны compose/pipe: у тебя есть
MyArray.create([1,2,3]).bind(square).bind(sum).print
MayBe.create(1).bind(square).bind(sum).print
MayBe.create().bind(square).bind(sum).print
bind(square).bind(sum).print
MayBe.create(1).bind(square).bind(sum).print
в одну функцию (скажем, f) и потом делать f(MayBe(1)), f(MayBe()), f(MyArray([1, 2, 3])) (или даже f([1, 2, 3] поскольку map есть у родного JS-массива, а значит он достаточно функтор, bind там нафиг не нужен).