Монады на Java
Здравствуйте, меня зовут tmaxx, и я алкоголик понял что такое монады. И, естественно, рассказываю об этом всем вокруг, в том числе и вам. Конечно, это Далеко Не Первая Статья О Монадах на Хабре, но ещё один альтернативный взгляд на проблему, думаю, не помешает. «Монада», как известно, это « моноид в моноидальной категории эндофункторов », что дает примерно ноль информации несведущему человеку. В программировании, можно попробовать определить монаду как «штуку, реализующую вот такие методы»: (>>=) :: forall a b. m a -> (a -> m b) -> m b return :: a -> m a Не понятно на Хаскеле? Вот примерный эквивалент на Java: <A, B> Monad<B> bind(Monad<A> ma, Function<A, Monad<B>> famb);
<A> Monad<A> ret(A a); Все равно остались вопросы? Почему именно такая сигнатура? Что в ней такого особенного, что она используется абсолютно во всех реальных программах написанных на функциональных языках? Попробуем разобраться.
https://habr.com/ru/articles/981318/
#Java #Монады #функциональное_программирование