Фон
Я пытаюсь помочь кому-то в StackOverflow с вопросом о фьючерсах, возможностях и либо. Мой первый подход состоит в том, чтобы иметь простую функцию, которая принимает Maybe
и что-то вычисляет.
Код
Я использую Sanctuary, но это эквивалентно Ramda или любой другой библиотеке.
const S = require("sanctuary");
const transform = S.map(
S.pipe( [ S.trim, S.toUpper ] )
);
S.Maybe.Just( [" heello", " world!"] )
.map( transform )
Проблема
Проблема в том, что эта простая функция завершается с ошибкой:
TypeError: S.Maybe.Just(...).map не является функцией
Вопрос
Я в замешательстве, если не сказать больше. Я знаю, что Maybe — это монада, а монады — это функторы. У каждого функтора должен быть метод map
, но почему-то Maybe.Just (который является типом Maybe) не имеет?
Что я делаю не так?