Size: a a a

Scala User Group

2020 January 16

Oℕ

Oleg ℕizhnik in Scala User Group
На обычном стейт реф тоже не реализуешь
источник

Oℕ

Oleg ℕizhnik in Scala User Group
Стейт принципиально отличается от реф
источник

SA

Sergey Alaev in Scala User Group
У меня подозрение, что если с этой монадой запустить параллельный код, то разломается синхронизация, например, modify перестанет быть атомарным.
источник

Oℕ

Oleg ℕizhnik in Scala User Group
Он не синхронизируется и в этом его суть, каждый тред владеет своим собственным стейтом, в отличие от рефов, которые не контролируют, сколько тредов имеют доступ к ним
источник

Oℕ

Oleg ℕizhnik in Scala User Group
Sergey Alaev
У меня подозрение, что если с этой монадой запустить параллельный код, то разломается синхронизация, например, modify перестанет быть атомарным.
Модифай не перестанет быть атомарным как раз
источник

Oℕ

Oleg ℕizhnik in Scala User Group
Тут гарантии овнершипа стейта гораздо более сильные
источник

SA

Sergey Alaev in Scala User Group
ааа, понял. get/set относится только к текущей цепочке монад
источник

Oℕ

Oleg ℕizhnik in Scala User Group
Чем у рефа
источник

Oℕ

Oleg ℕizhnik in Scala User Group
да
источник

SA

Sergey Alaev in Scala User Group
не думал, что на Fiber.join можно не перетирать стейт, а как-то мерджить? может быть полезно для моков, например, которые кол-во вызовов считают или собирают аргументы.
источник

Oℕ

Oleg ℕizhnik in Scala User Group
думал
источник

SA

Sergey Alaev in Scala User Group
банально  требовать полугруппу от стейта
источник

Oℕ

Oleg ℕizhnik in Scala User Group
но это не того уровня поделка, чтобы прямо вот думать о чём то
источник

SA

Sergey Alaev in Scala User Group
Если выпилить ридер и отмену, объединить входной и выходной стейт, может получиться что-то полезное...
источник

Oℕ

Oleg ℕizhnik in Scala User Group
щас бы ридер выпиливать
источник

SA

Sergey Alaev in Scala User Group
ридер в этой монаде - это же оптимизация?
источник

Oℕ

Oleg ℕizhnik in Scala User Group
нет
источник

Oℕ

Oleg ℕizhnik in Scala User Group
это такой же ридер как R в ZIO
источник

SA

Sergey Alaev in Scala User Group
т.е. если из монады убрать ридер и завернуть её в клейсли, получится не то же самое?
источник

Oℕ

Oleg ℕizhnik in Scala User Group
нет
источник