Size: a a a

Scala User Group

2020 July 30

VS

Vladimir Sam in Scala User Group
 * The main advantage to using `ZArrow` is that it provides you a means of
* importing an impure function `A => B` into `ZArrow[E, A, B]`, without
* actually wrapping the result of the function in an `IO` value.


А это легально? Т.е. если я пишу на ZIO, откуда вдруг у меня возьмется пачка нечистых функций
источник

ΛВ

Λнтон Войцишевский... in Scala User Group
Vladimir Sam
 * The main advantage to using `ZArrow` is that it provides you a means of
* importing an impure function `A => B` into `ZArrow[E, A, B]`, without
* actually wrapping the result of the function in an `IO` value.


А это легально? Т.е. если я пишу на ZIO, откуда вдруг у меня возьмется пачка нечистых функций
Видимо предполагается, что это альтернатива зио как эффекту
источник

VS

Vladimir Sam in Scala User Group
Λнтон Войцишевский
Видимо предполагается, что это альтернатива зио как эффекту
но это же выглядит как отказ от эффекта
  /**
  * Lifts an impure function into `ZArrow`, assuming any throwables are
  * non-recoverable and do not need to be converted into errors.
  */
 def effectTotal[A, B](f: A => B): ZArrow[Nothing, A, B] = new Impure(f)
источник

VS

Vladimir Sam in Scala User Group
если у меня такие допущения относительно кода, зачем мне какая-то библиотека вообще?
источник

ΛВ

Λнтон Войцишевский... in Scala User Group
Vladimir Sam
но это же выглядит как отказ от эффекта
  /**
  * Lifts an impure function into `ZArrow`, assuming any throwables are
  * non-recoverable and do not need to be converted into errors.
  */
 def effectTotal[A, B](f: A => B): ZArrow[Nothing, A, B] = new Impure(f)
Ну стрелки -- альтернатива эффектам в целом.
Вот есть грязная жява функция, в эффектах мы ее результат оборачиваем в эффект, а тут саму функцию лифтим в стрелку
источник

ΛВ

Λнтон Войцишевский... in Scala User Group
И видимо что зио[а] чистая, что зстрелка[а, б] чистая
источник

D

Dima in Scala User Group
Boris V. Kuznetsov
Вот на русском языке можно будет послушать и выступить самому в рамках ZIO Crew
Это ваш проект или Джон тоже в курсе и в нем принимает участие?
источник

VS

Vyatcheslav Suharnik... in Scala User Group
Igal Tabachnik
Ещё кстати использую tranzactio который умеет лифтить дубиевскй ConnectionIO в зио
а я выпилил tranzactio из-за того, что пул нельзя подкрутить, что актуально для sqlite. В итоге даже проще получись на мой взгляд
источник

λ

λoλcat in Scala User Group
Oleg ℕizhnik
Но в scala 2 за всё время они нужны были 0 раз
Освежу старое обсуждение. Понадобилось в скале 2 дырявый экзистенциал выразить ((

В апишке нужна функция вида Request[_] => String, где Request[F[_]].

Эта функция специально экзистенциальная, т.к. при ее реализации нельзя пользоваться кусками реквеста, зависящими от F.

Если ее сделать полиморфной с отдельным параметром, то в апи проникают бессмысленные параметры, инференс сразу начнет страдать.

Вопрос, как быть с портированием на дотти в будущем, если сейчас хочется написать forSome?
источник

λ

λoλcat in Scala User Group
источник

λ

λoλcat in Scala User Group
Вот это при миграции на скала 3 не хочется потом писать...
источник

λ

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

λ

λoλcat in Scala User Group
Все это ударяет по удобству. Хочу чтобы можно было написать лямбду инплейс
источник

IZ

Ilya Zhavoronkov in Scala User Group
А кто-нибудь знает как заставить lightbend заапрувить и смерджить пулл-реквест? ну или отклонить. ну короче хоть что-то сделать)
источник

ЮБ

Юрий Бадальянц... in Scala User Group
Ilya Zhavoronkov
А кто-нибудь знает как заставить lightbend заапрувить и смерджить пулл-реквест? ну или отклонить. ну короче хоть что-то сделать)
Долби в гиттере
источник

ЮБ

Юрий Бадальянц... in Scala User Group
Или твиттере
источник

IZ

Ilya Zhavoronkov in Scala User Group
Юрий Бадальянц
Долби в гиттере
спс. попробую
источник

λ

λoλcat in Scala User Group
λoλcat
Все это ударяет по удобству. Хочу чтобы можно было написать лямбду инплейс
Кажется выкрутился...
источник

AS

Andrey Sugak in Scala User Group
λoλcat
Кажется выкрутился...
Как сделал?
источник

λ

λoλcat in Scala User Group
Andrey Sugak
Как сделал?
Повезло, что Request неявно ковариантен по F (есть метод covary)

Можно обойтись функцией Request[Any] => String, а Any - поликайнден
источник