Size: a a a

Scala User Group

2020 September 26

Oℕ

Oleg ℕizhnik in Scala User Group
в моём случае там вообще Expr[I, O]
источник

Oℕ

Oleg ℕizhnik in Scala User Group
Simon
Интересно, надо попробовать.
А в чем здесь смысл разделения на Expr и Term? Почему бы не сделать Expr корнем adt?
основная идея в том, чтобы к каждому терму иметь тип
источник

Oℕ

Oleg ℕizhnik in Scala User Group
и не дописывать его в каждый кейскласс
источник

Oℕ

Oleg ℕizhnik in Scala User Group
но не обязательно
источник

Oℕ

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

P

Python in Scala User Group
Нубский вопрос: а есть какое-то название у S => F[S]. Я знаю что A => F[B] - это Kleisli или ReaderT, а если A всегда равно B? Или это ограничение не даёт никаких интересных особенностей помимо тех что уже есть в Kleisli?
источник

NV

Nikita Vilunov in Scala User Group
Python
Нубский вопрос: а есть какое-то название у S => F[S]. Я знаю что A => F[B] - это Kleisli или ReaderT, а если A всегда равно B? Или это ограничение не даёт никаких интересных особенностей помимо тех что уже есть в Kleisli?
Звучит как коалгебра

https://en.wikipedia.org/wiki/F-coalgebra
источник

P

Python in Scala User Group
Nikita Vilunov
Звучит как коалгебра

https://en.wikipedia.org/wiki/F-coalgebra
Да, спасибо, похоже на то. Может ещё (S, A) => F[S] есть? 😊
источник

Oℕ

Oleg ℕizhnik in Scala User Group
Python
Да, спасибо, похоже на то. Может ещё (S, A) => F[S] есть? 😊
это всё ещё коалгебра только для функтора
A => F[_]
источник

P

Python in Scala User Group
Oleg ℕizhnik
это всё ещё коалгебра только для функтора
A => F[_]
Типа S => F[S], где F[T] = A => G[S]?
источник

Oℕ

Oleg ℕizhnik in Scala User Group
но знание, что это коалгебра не даёт информации о том, как композить это в случае если F - монада, и вы хотите композить такие штуки
источник

P

Python in Scala User Group
Oleg ℕizhnik
но знание, что это коалгебра не даёт информации о том, как композить это в случае если F - монада, и вы хотите композить такие штуки
Я хочу вот эту штуку выкинуть самописную (там видно, примерно, что я хочу с ней делать): https://github.com/evolution-gaming/kafka-flow/blob/master/core/src/main/scala/com/evolutiongaming/kafka/flow/Fold.scala
источник

Oℕ

Oleg ℕizhnik in Scala User Group
поэтому я бы всё-таки вернулся к к форме
A => StateT[F, S, Unit], или даже
A => StateT[F, S, Acc], где Acc - вырезанный из S кусок аккумулируемой в процессе информации
источник

Oℕ

Oleg ℕizhnik in Scala User Group
Python
Я хочу вот эту штуку выкинуть самописную (там видно, примерно, что я хочу с ней делать): https://github.com/evolution-gaming/kafka-flow/blob/master/core/src/main/scala/com/evolutiongaming/kafka/flow/Fold.scala
А в чём идёя? Многократно применять эту штуку к стриму элементов и комбинировать, накапливая разные биты информации?
источник

Oℕ

Oleg ℕizhnik in Scala User Group
Возможно, вы заинтересуетесь Iteratee моделью.

Каждый Iteratee[F, A ,S] - это что-то монадного потребителя элементов A, который однажды сконструирует S
Iteratee[F, A ,S]  ~ End(F[S]) | Continue (A => F[Iteratee[F, A, S]])

Вы можете комбинировать такие потребители, накапливая необходимую информацию, а затем использовать, засунув в
Enumerator [F, A] ~[S] Iteratee[F, A, S ] => F[S]
Enumerator [F, A] здесь выступает в роли производителя/ стрима элементов A

Библиотека Брауна https://github.com/travisbrown/iteratee  не такая сильная как фс2 но с хорошим набором встроенных средств (блекджеком и чанками)
источник

P

Python in Scala User Group
Oleg ℕizhnik
А в чём идёя? Многократно применять эту штуку к стриму элементов и комбинировать, накапливая разные биты информации?
Да
источник
2020 September 27

ИО

Илья Оськин... in Scala User Group
Кто нибудь знает способ решить проблему инференса в данном случае для foo без алиаса?
https://scastie.scala-lang.org/oskin1/XJfWEBYAS6OLJ0hslhwxNA/13
источник

ИО

Илья Оськин... in Scala User Group
Это не решение проблемы вывода типов
источник

AS

Andrey Sugak in Scala User Group
Илья Оськин
Это не решение проблемы вывода типов
Тогда могу предложить поменять местами тайп параметры у Alg.
источник

AS

Andrey Sugak in Scala User Group
источник