Size: a a a

2021 March 24

АГ

Александр Гранин... in ФП
Jerzy Syrowiecki
а также, наверно, есть большая разница между "в случае ошибки откатить, и конец" и "в случае ошибки откатить и снова пробовать до успеха"
Разница точно есть, так как некоторые транзакционные модели (STM и БД) предполагают перезапуск транзакции в случае неуспеха. Эффект тогда тоже будет перезапущен. И даже если у него есть обратная операция, повторный эффект может все равно не так же сработать
источник

K

Kir in ФП
Александр Гранин
Разница точно есть, так как некоторые транзакционные модели (STM и БД) предполагают перезапуск транзакции в случае неуспеха. Эффект тогда тоже будет перезапущен. И даже если у него есть обратная операция, повторный эффект может все равно не так же сработать
Хорошо, что в STM нельзя IO встраивать - ну, приличными способами
источник

АГ

Александр Гранин... in ФП
Kir
Хорошо, что в STM нельзя IO встраивать - ну, приличными способами
Да
источник

DK

Daniil Kostin in ФП
Александр Гранин
Что такое "приватная зона отлова ошибок"? Некий try, сидящий в глубине?
немного не так выразился...

у меня что-то такое от ORM

Future<result> db.transaction(() {
// rollback on exception
});

ловить исключение я могу, но не могу объединить несколько транзакций, если выше контекста репозитория.
источник

АГ

Александр Гранин... in ФП
Для дальнейшего продвижения, конечно, нужно четче понимать, что у вас за задача
источник

АГ

Александр Гранин... in ФП
Но в целом, по ощущениям из опыта, - решаема с помощью Free monads. Что не исключает более простых решений
источник

a

allter in ФП
Daniil Kostin
немного не так выразился...

у меня что-то такое от ORM

Future<result> db.transaction(() {
// rollback on exception
});

ловить исключение я могу, но не могу объединить несколько транзакций, если выше контекста репозитория.
Если надо с существующим ORM - то либо страдать, либо реализовывать паттерн "сага"
источник

АГ

Александр Гранин... in ФП
ФП на Dart 😶
источник

DK

Daniil Kostin in ФП
есть библиотеки 🙂
источник

АГ

Александр Гранин... in ФП
Да ладно!
источник

DK

Daniil Kostin in ФП
allter
Если надо с существующим ORM - то либо страдать, либо реализовывать паттерн "сага"
что-то подобное и пытаюсь в упрощенном виде
источник

IZ

Ilia Zviagin in ФП
Daniil Kostin
есть библиотеки 🙂
Ты пишешь на Dart ?
источник

DK

Daniil Kostin in ФП
я штуки 4 нашел, dartz самая популярная частичный порт cats
остальные не известные, одна из них порт fp-ts
источник

DK

Daniil Kostin in ФП
Ilia Zviagin
Ты пишешь на Dart ?
Flutter под мобилки
А еще много на чем писал...
источник

IZ

Ilia Zviagin in ФП
Ты уверен, что это правильный путь?
источник

IZ

Ilia Zviagin in ФП
Изучать ФП на дарт?
источник

АГ

Александр Гранин... in ФП
Правильный путь изучать ФП - изучать Haskell!
источник

DK

Daniil Kostin in ФП
Ilia Zviagin
Изучать ФП на дарт?
Нет, но хочу попробовать. Притягивает доказуемость решений.
В C#, Java, Kotlin затягивают же... почему нет?
источник

DK

Daniil Kostin in ФП
Александр Гранин
Правильный путь изучать ФП - изучать Haskell!
Не Lisp?
источник

АГ

Александр Гранин... in ФП
Точно не Lisp
источник