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

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

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

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

15 ответов

6 просмотров

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

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

Виктор-Орехов Автор вопроса
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
Я не смотрел именно доку, но в целом если монады и...

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

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

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

Есть какой-нибудь для Delphi/FPC T*Compression(Decompression)Stream на базе LZ4/Zstd/любой другой быстрый(и хорошо сжимающий) алгоритм А ещё лучше в pure pascal А ещё лучше од...
notme
32
А чем вам питонисты не угодили?😂
.
79
Язык Си можно выучить за день? По книжке ANSI C на 230 страниц
Vincent Vegan
29
Привет всем, подскажите, есть сайт на ево 1.4, надо сделать его мультиязычным, структура документов одинаковой останется, чисто тексты разные, свои тв для каждого языка, поддо...
Oleg
7
Всех приветствую. Направьте меня в нужное русло. Постепенно переписываю проект с delphi на lazarus. Приложение - обычный windows/linux клиент для бд firebird. Тут все хорошо. ...
Mishutka
8
Hello. Could you please help me with finding all coordinates within a radius using a spatial index, given that I have a table with coordinates? SET @lng = 37.57925; SET @lat ...
Rinchin G
1
Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
75
С той же поддержкой Android в тулчейне, если кому интересно. На Swift Forums шло убогое обсуждение всякой херни годами, но ничего годного так и не появлялось. Пришел vgorloff ...
iMike
1
Dim Dim, [02.07.2024 11:07] DB 0x62 Dim Dim, [02.07.2024 11:07] DB 0x66 Dim Dim, [02.07.2024 11:07] кто пояснит что это?
Dim Dim
14
Дорогие любители Прекрасной Джулии! Есть кто-то имеющий практический опыт построения ML для Систем Управления? Нам нужно сделать нейросеть для автоматической подстройки пара...
Roman Timo
4
Карта сайта