Size: a a a

Scala User Group

2020 August 20

AD

Apache DOG™ in Scala User Group
Можно сделать тайпмембер и не будет портится параметризация
источник

DZ

Dmitry Zuev in Scala User Group
Victor Kalinin
Дело в том что я не хочу выводить этот параметр в трейт. Там уже есть один и он используется как tagless final. по нему определяется поведение. И введение второго всю параметризацию портит
Ну две дырки это типа ок
источник

AD

Apache DOG™ in Scala User Group
Victor Kalinin
Подскажите плз, можно ли как то заоверрайдить HKT метода?
Например есть
def do[F[_]](f: F)
Я хочу заовверрайдить как
override def do[F[_] <: Future](f: Future) = ???
Но на самом деле если подумать то можно сослаться на LSP и что это его нарушение
источник

AD

Apache DOG™ in Scala User Group
Потому то если ты сузишь тип то не будет отношения is A
источник

VK

Victor Kalinin in Scala User Group
Apache DOG™
Можно сделать тайпмембер и не будет портится параметризация
А. Хм. Идея. Спасиб
источник

VK

Victor Kalinin in Scala User Group
Dmitry Zuev
Ну две дырки это типа ок
Не в моем случае :( я от обоих пляшу
источник

DZ

Dmitry Zuev in Scala User Group
Не понял противоречий пока
источник

VK

Victor Kalinin in Scala User Group
Apache DOG™
Но на самом деле если подумать то можно сослаться на LSP и что это его нарушение
Да. Ты прав. Не хотелось разбивать на мелочь
источник

VK

Victor Kalinin in Scala User Group
Dmitry Zuev
Не понял противоречий пока
Да. Дело скорее не в tagless final, а в том, что если я параметризирую по классу A[F[_], G[_]] (как это сейчас), то при другом G[_] прийдется копировть весь код связанный с F[_]. Апач прав - у меня смешаны две ответственности и в этом проблема
источник

AS

Alex Sh in Scala User Group
Народ, привет.
Может кто-нть знает, можно ли скомбинировать Functor[List] и BiFunctor[Tuple2]?
Идея в том, чтобы можно было получить функтор по левому элементу туплов в списке
Типа:

def listTuple2Left[R]: Functor[Tuple2[*, R]] = ???
источник

AS

Alex Sh in Scala User Group
Нашел
private implicit def listTuple2Left[R] =
 Functor[List].compose(Bifunctor[Tuple2].leftFunctor[R])
источник

Oℕ

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

Oℕ

Oleg ℕizhnik in Scala User Group
Binested[Tuple2, Id, List, *, *]
источник
2020 August 21

VS

Vladimir Sam in Scala User Group
Если у меня есть M[_[_]]: FunctorK, есть шансы для него запросить ClassTag[M]? С ходу ругается на M takes type parameters
источник

VP

Vladimir Pavkin in Scala User Group
нельзя, M это ж не тип а конструктор типов
источник

ЮБ

Юрий Бадальянц... in Scala User Group
Vladimir Sam
Если у меня есть M[_[_]]: FunctorK, есть шансы для него запросить ClassTag[M]? С ходу ругается на M takes type parameters
А зачем именно ClassTag?
источник

Oℕ

Oleg ℕizhnik in Scala User Group
у дистейжа есть свой нанорефлекшен для ХКТ
источник

Oℕ

Oleg ℕizhnik in Scala User Group
или ты матчить хочешь по M[F]
источник

Oℕ

Oleg ℕizhnik in Scala User Group
можно тогда нопремер попросить ClassTag[M[Any]]
источник

VS

Vladimir Sam in Scala User Group
хочу Logs.sync[F, F].forService[M] мутить %) этакий дженерик логгер, который сам знает кого логирует
источник