Size: a a a

Scala User Group

2021 July 22

VC

Vadim ChelyshOv in Scala User Group
а такое есть - symbol.denot.info ?
Symbol - это dotty.tools.dotc.core.Symbols.Symbol или что там?
источник
2021 July 23

SA

Sergey Alaev in Scala User Group
scala.quoted.Quotes.reflect.Symbol
источник

VC

Vadim ChelyshOv in Scala User Group
тогда вот  так`TypeRepr.memberType(methodSymbol)`
источник

SA

Sergey Alaev in Scala User Group
Я попробую, конечно, но какой тип у метода?
источник

VC

Vadim ChelyshOv in Scala User Group
MethodType - у методов тож типы есть
источник

AS

Artem Sokolov in Scala User Group
Подскажите плс какие есть варианты реализовать atomic операцию с помощью cats/CE ?
cats STM, вручную засемафорить вычисления, ... что-то еще?
если более подробно - допустим есть стейт A и стейт B (имутабл офк, в целом A и B можно считать просто Tuple[A,B]), нужно прочитать a и b и вычислить на основе них новые их значения и собственно записать в стейт, но только если они вычислилсь на основе прочтенных ранее.
может есть что-то типа CAS в кэтс. или сразу типа как в ConcurrenthashMap метод потипу evalAndUpdate...?
источник

λ

λoλcat in Scala User Group
В реф положить тупл. Всё
источник

ΛВ

Λнтон Войцишевский... in Scala User Group
У рефа полно методов fooAndUpdate
источник

ΛВ

Λнтон Войцишевский... in Scala User Group
updateAndGet
источник

AS

Artem Sokolov in Scala User Group
спасибо
источник

ΛВ

Λнтон Войцишевский... in Scala User Group
Access
источник

λ

λoλdog in Scala User Group
Модифай
источник

λ

λoλcat in Scala User Group
Вычисление стейта чистая операция?
источник

λ

λoλcat in Scala User Group
Или там RefM нужен?
источник

AS

Artem Sokolov in Scala User Group
хм. если чистая то я так понимаю все элементарно, а вот если нет?
источник

λ

λoλcat in Scala User Group
tofu.concurrent.Agent, zio.RefM
источник

AS

Artem Sokolov in Scala User Group
хмммм, спасибо
источник

λ

λoλcat in Scala User Group
Но чистая работает просто через кас, а апдейтМ еще семафор вовлекает. Т.к. много раз эффектфул апдейт нельзя пробовать
источник

AS

Artem Sokolov in Scala User Group
дада, то что нужно.
а тофу Агент нужен - это из-за того что в CE нету инструмента чисто под это задачу (но есть более общие вещи которые можно скомпохзить), а в зио они решили это втащить в либу. правильно понимаю?
источник

λ

λoλcat in Scala User Group
Ну как это сделать на се (довольно просто) как раз показано в имплементации Агента. В зио есть из коробки, да.
источник