Size: a a a

Scala User Group

2020 May 14

AS

Alex Sh in Scala User Group
Oleg ℕizhnik
Там есть для функтора
Ок, спасибо.
Думаю трейт нам тоже подойдет
источник

Oℕ

Oleg ℕizhnik in Scala User Group
да, надо видимо линзы делать для трейтов
источник

AS

Alex Sh in Scala User Group
Alex Sh
Народ, привет.
Есть какая-нть либа для 2.12 + 2.13 которая умеет выводить функторы для такого:
final case class Calls[F[_], R] (
 call1: Int => F[Option[R]],
 call2: (String, Int) => F[List[R]],
 //...
 callN: Boolean => F[R]
)
Если такое делать ручками, то получается довольно много кода по перекладыванию функций в Kleisli и назад.
P.S. Подразумевается, что для F[_] тоже есть функтор
P.P.S Нужен Functor[Calls[F, *]]
Если кому интересно практическое применение этого, то вот оно.
У нас есть trait Service[F[_]] {
def call1(Int): F[Option[InternalDomainClass]]
}

а еще у нас есть несколько APIController-ов для нескольких API - internal1, internal2, public1, public2
Каждый API имеет свои DTO(Dto1, ..., Dto4) с немного разной структурой, но строго выполняется условие что:
f1: InternalDomainClass => Dto1
...
fN: InternalDomainClass => DtoN

Собстенно хотелось применять f1, .., fN к результатам вызова Service, чтобы получать разные dto для разных APIController-ов
источник

AS

Alex Sh in Scala User Group
P.S. case class используется для упаковки методов Service и методов других сервисов в вызовы конкретного APIController, потому что не все методы Service нужны в APIController.
И в APIController нужны методы из других сервисов(авторизация и т. д.)
источник

DO

Dmytro Orlov in Scala User Group
DIstage мне говорит, что моё io после retry
val io: IO[Throwable, Unit] = ???
io.retry(Schedule.duration(10.seconds))
превращается в IO[Any, Unit] и он теперь не знает, что с моим Any делать, а всё из-за товарища
zio.Schedule#duration:
def duration(duration: Duration): Schedule[Clock, Any, Duration] =
   elapsed.untilOutput(_ >= duration)
DIstage прав? zio.Schedule#duration козёл?
источник

𝛈µ

𝛈 µ in Scala User Group
изолированный пример давай, так непонятно
источник

𝛈µ

𝛈 µ in Scala User Group
Но вроде мы не виноваты
источник

Oℕ

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

Oℕ

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

Oℕ

Oleg ℕizhnik in Scala User Group
Не подумайте, я не против совсем, просто интересно
источник

ΛВ

Λнтон Войцишевский... in Scala User Group
Знает кто-то, есть где-то примеры использования подхода, описанного здесь или здесь, когда есть два функтора и один из "без ошибок", как в ErrorsTo[F, G]?
источник

λ

λoλcat in Scala User Group
Λнтон Войцишевский
Знает кто-то, есть где-то примеры использования подхода, описанного здесь или здесь, когда есть два функтора и один из "без ошибок", как в ErrorsTo[F, G]?
Зио
источник

ЮБ

Юрий Бадальянц... in Scala User Group
Дока в тофу хорошая
источник

ΛВ

Λнтон Войцишевский... in Scala User Group
λoλcat
Зио
в зио конкретные эффекты, мне скорее интересно когда эффекты абстрактные
источник

λ

λoλcat in Scala User Group
Тебе опенсурс проекты нужны?
источник

λ

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

ΛВ

Λнтон Войцишевский... in Scala User Group
λoλcat
На мой взгляд, не самая полезная штука, чтобы таскать по своему коду разные эффекты из-за этого. То ли дело WithRun - маст хэв в любом продакшене
я пытаюсь разобраться в разных способах обработки ошибок, это один из них, так что хочется посмотреть
источник

ΛВ

Λнтон Войцишевский... in Scala User Group
λoλcat
Тебе опенсурс проекты нужны?
любое, на что я могу посомтреть
источник

ΛВ

Λнтон Войцишевский... in Scala User Group
доступа в репу тинька у меня нет
источник

λ

λoλcat in Scala User Group
Λнтон Войцишевский
доступа в репу тинька у меня нет
Приходи к нам в тинек, будут
источник