Стоит, потому что если вы знаете про что-то, что оно монада, то вы сразу знаете, что там есть fmap, bind, join, return, аппликативное применение. Вы сразу знаете что можете комбинировать стелки Клейсли и при этом получать ожидаемый результат. И это знание даётся вам почти даром, если конечно вы знаете что такое монады.
А вы пропустили самое интересное — как делать композицию вычислений, возвращающих Result.
В фуге копроизведение, а хочется монаду. Впрочем без do нотации это будет весьма ограниченно. Без частичного применения некрасиво, могут спасти лямбды, но всё равно некрасиво. Ещё про замыкания забыл, не знаю что с ними в джаве.
Я имел в виду Вас лично. Почему этого нет в экосистеме? Думаю потому, что не приспособленный синтаксис и высокий порог входа. Есть SkalaZ, но его синтаксис я вообще не знаю.
Нимагу, потому как в джава продакшене я как свинья в апельсинах. Вы упорно отбиваетесь от изучения функторов, монад, алгебраических типов данных. Хотя то что вам нужно называется монада ошибки.
Прекрасно, вы почти уловили суть. Теперь допишите к классу Result правильные методы map и flatMap. И тогда всё будет совсем красиво и в соответсвии с теорией.
Судя по тому что написано в статье Optional реализует Maybe в джаве. А если что-то крякает как утка, ходит как утка. плавает как утка, летает как утка, то я называю это уткой.
Вам предложили использовать списки, я написал, что в некотором смысле, это одно и тоже. И буду признателен, если вы мне объясните разницу между Optional<a*> и Maybe a. С категориальной точки зрения.
От уж мне эти «простейшие примеры». Первым комментарием я не в коей мере не хотел упрекнуть автора в ненужности статьи. Ч хотел обратить внимание на то, что описанная им концепция является частым случаем очень мощной и очень важной конструкции. И я не заметил в статье оператора join. Может плохо читал, джаву я почти не знаю.
Чтобы куда-то лететь пльзуясь «абсолютными» координатами надо знать где оно должно оказаться, когда мы туда долетим. А вот с этим больше проблеммы. Чем дольше время полета, тем больше ошибка при интегрировании.
Упускаете. В варианте 1 по разные стороны от исковой плоскости три и одна точки, а в варианте два — две и две. Значит вариант два не сводится к варианту один.
А вы пропустили самое интересное — как делать композицию вычислений, возвращающих Result.