169 похожих чатов

Здравствуйте, разбираю проект и увидел там библиотеку Arrow, почитал, посмотрел

примеры и не понял смысл ее существования, ведь она делает все то же самое, что и все null-safety в котлине, а всякие Either<T, R> для результата или ошибки еще больше путают, ведь можно использовать аннотацию @Throws, если очень надо

Так в чем же сила библиотеки?

15 ответов

13 просмотров

Если я не ошибаюсь, она завязана на функциональный стиль и добавляет инструментарий для этого

Если не поняли, значит не нужна. Она сделана поклонниками хаскель-стайла для реализации этого самого хаскель-стайла.

Виктор-Орехов Автор вопроса
Alexander Nozik
Если не поняли, значит не нужна. Она сделана покло...

Но у меня она в проекте и мне нужно с ней работать, так что понять нужно обязательно👐

Виктор Орехов
Но у меня она в проекте и мне нужно с ней работать...

Сочувствую. Тогда придется читать про хаскель или как минимум про скалу. Разумеется, если у вас не тот случай, что она затащена только ради either

Alexander Nozik
Сочувствую. Тогда придется читать про хаскель или ...

Вы давно на неё смотрели? Там на данный момент выкинули уже почти всё, что на Котлин плохо ложится. Core часть действительно содержит в основном то, что полезно в большом количестве проектов может быть.

Alex Levin
Вы давно на неё смотрели? Там на данный момент вык...

Давно, год назад. Но тем не менее стиль-то там все равно хаскелевый

Виктор Орехов
Но у меня она в проекте и мне нужно с ней работать...

ее можно использовать на разную глубину. если у вас там обычные Either, Validated и Option то там ничего сложно не должно быть. Главное понять концепцию map и leftMap, flatMap и еще чуточку.

Alex Levin
Вы давно на неё смотрели? Там на данный момент вык...

а значит я мог пропустить многое. Я в качестве эксперимента затягивал Core часть просто поиграться с возвращаемыми ошибками. в доменную модель. там они красиво ложились.

Alexander Nozik
Давно, год назад. Но тем не менее стиль-то там все...

Эм. Нет? Тайп классы выкинуты в том числе почти все. Просто несколько конструкций, которые много где известны (Either/NonEmptyList/Validated) и функции для удобной работы с ними и расширения для существующих типов.

Alex Levin
Эм. Нет? Тайп классы выкинуты в том числе почти вс...

Вот сейчас открыл. Там опять все про ехала монада через монаду на монаду.

Alexander Nozik
Вот сейчас открыл. Там опять все про ехала монада ...

Мы действительно будем говорить, что красивый синтаксис над flatMap это сложно и недопустимо для Котлина? :)

Alex Levin
Мы действительно будем говорить, что красивый синт...

Так не об этом речь, а о том, через что оно вводится и объясняется. Мой исходный тезис был в том ,что для того, чтобы понять как и что делается в Arrow надо понять, откуда они это взяли, а не то, что это категорически не надо использовать.

Alexander Nozik
Так не об этом речь, а о том, через что оно вводит...

Я не смотрел именно доку, но в целом если монады и monad comprehensions это самый продвинутый концепт, который остался в core части, то я бы не сказал, что либа какая-то очень недоступная стала. Более того, кроме сахара над монадами там просто есть ещё пачка вспомогательных вещей, которые довольно простые.

Alex Levin
Я не смотрел именно доку, но в целом если монады и...

Но доку может прочищать ещё надо, как и многие другие :)

Alex Levin
Я не смотрел именно доку, но в целом если монады и...

Я тут не спорю, поскольку никогда всерьез ее не использовал и не могу тут комментировать. Но вот доку открыл - и там сразу оно.

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта