Pull to refresh
12
0
Send message
Явление является моделью самого себя. Если модель ведет себя как явление, то явление ведет себя как модель. Так что диагональность и коммутативность вроде бы есть. Остался вопрос с транзитивностью. Которая, опять же, получается через явление.
А разве не получится транзитивности через реальный мир?
Каюсь, не посмотрел кто автор статьи.
Сходите на мехмат. Там вам отрихтуют неокортекс фундоментально брутальным рашпилем и всё встанет на свои места.
Если минусанувшим не лень, объясните за что.
Мне кажется, что я понятно ответил на вопрос: «почему List<T> не может содержать null?».
К сожалению при наборе потерял <T>, возможно это послужило причиной недопонимания.
Как всегда ответы на некоторые из вопросов лежат не в Java а в теории категорий. null не хранится в List потому что null не принадлежит T. А List должен быть функтором. В качестве альтернативы, при необходимости, может быть использовано List<Option>.
Если короткое замыкание будет в проводке, а автоматы подобраны неправильно, вы узнаете много нового.
Про быстрее — не правда. unpack, splitOn и map pack должны быть вычислены, поэтому сэкономить там не получится.
Он и есть. Если Typename — монада, то у него есть методы of, map,flatMap. И, что характерно, они реализованы у Optional и Stream.
Стоит, потому что если вы знаете про что-то, что оно монада, то вы сразу знаете, что там есть fmap, bind, join, return, аппликативное применение. Вы сразу знаете что можете комбинировать стелки Клейсли и при этом получать ожидаемый результат. И это знание даётся вам почти даром, если конечно вы знаете что такое монады.
А вы пропустили самое интересное — как делать композицию вычислений, возвращающих Result.
В фуге копроизведение, а хочется монаду. Впрочем без do нотации это будет весьма ограниченно. Без частичного применения некрасиво, могут спасти лямбды, но всё равно некрасиво. Ещё про замыкания забыл, не знаю что с ними в джаве.
Как раз в Haskell исключения сделаны правильно, через монадический трансформер ErrorT. Возможно есть какие-то ньюансы с IO, но там всегда так.
Я имел в виду Вас лично. Почему этого нет в экосистеме? Думаю потому, что не приспособленный синтаксис и высокий порог входа. Есть SkalaZ, но его синтаксис я вообще не знаю.
Нимагу, потому как в джава продакшене я как свинья в апельсинах. Вы упорно отбиваетесь от изучения функторов, монад, алгебраических типов данных. Хотя то что вам нужно называется монада ошибки.
Прекрасно, вы почти уловили суть. Теперь допишите к классу Result правильные методы map и flatMap. И тогда всё будет совсем красиво и в соответсвии с теорией.
Давайте же взглянем и на эту утку.
С нетерпением жду Вашей реализации монады Error.
Судя по тому что написано в статье Optional реализует Maybe в джаве. А если что-то крякает как утка, ходит как утка. плавает как утка, летает как утка, то я называю это уткой.
Вам предложили использовать списки, я написал, что в некотором смысле, это одно и тоже. И буду признателен, если вы мне объясните разницу между Optional<a*> и Maybe a. С категориальной точки зрения.
Очевидны естественные преобразования между Maybe a и List a. Если в списке не более одного элемента это преобразование будет ещё и изоморфизмом.

Information

Rating
Does not participate
Registered
Activity