Описание тега scalaz-zio

ZIO - это библиотека Scala с нулевой зависимостью для асинхронного и параллельного программирования с функциями, подобными Cats IO или Monix.
1 ответ

Валидация и фиксация ошибок с использованием алгебры

Я наткнулся на эту статью в среде: https://medium.com/@odomontois/tagless-unions-in-scala-2-12-55ab0100c2ff. Есть фрагмент кода, который мне трудно понять. Полный исходный код статьи можно найти здесь: https://github.com/Odomontois/zio-tagless-err. …
21 май '19 в 18:57
1 ответ

Как правильно отправить ответ JSON в http4s?

Не так давно я перешел с akka-http на http4s. Одна из основных вещей, которую я хотел сделать правильно - обработка JSON, в частности отправка ответа JSON. Я решил использовать http4s с ZIO вместо кошек, поэтому вот как выглядит http-маршрут: import…
23 май '19 в 10:22
1 ответ

Разница между IO и UIO в скаляр ZIO

В чем разница между IO и UIO в новой версии от ZIO например UIO[Long] а также IO[Nothing, Long]?
12 мар '19 в 08:16
2 ответа

Как элегантно объединить несколько задач, содержащих параметры в ZIO

Я ищу самую элегантную реализацию import scalaz.zio.Task def combineTasks[A, B, C, D](task1: Task[Option[A]], task2: Task[Option[B]], task3: Task[Option[C]]) (f: (A, B, C) => D) : Task[Option[D]] с помощью никаких дополнительных зависимостей scal…
16 мар '19 в 08:14
1 ответ

Zio run блокирует обратно совместимый код

(Надеюсь) простой вопрос о Скалазе Зио. У меня есть какой-то старый код, который я переделал в Zio. Я хочу, чтобы один путь этого кода продолжал вести себя точно так же, как это было: синхронный блокирование в текущем потоке (это жесткое требование)…
27 мар '19 в 15:24
1 ответ

Понимание библиотек Scala FP

Просто для наглядности для того, кто хочет начать работать с библиотекой Scala FP, чтобы стать лучше в чистой FP. Кто-нибудь прояснит разницу / отношение между Cats и Cats-Effect, Cats-Effects IO? Кроме того, где Zio и Monix стоят по отношению к это…
0 ответов

Как получить доступ к локальным данным волокна из побочного кода в ZIO

Я знаю это FiberRef это волокно сознавая эквивалент Javas ThreadLocal, Тем не менее, как я могу хранить информацию о волокне для побочного кода? По сути, я ищу что-то похожее на https://monix.io/api/3.0/monix/execution/misc/Local.html, чтобы сделать…
28 июл '19 в 10:29
2 ответа

Обработка ошибок в scala ZIO

Я хотел обработать некоторые исключения в ZIO, используя catchAll или catchSome, как показано ниже: object Test extends App { def run(args: List[String]) = myApp.fold(_ => 1, _ => 0) val myApp = for { _ <- putStrLn(unsafeRun(toINT("3")).toS…
04 июл '19 в 13:23
0 ответов

Автоматический выключатель Monix с Http-запросом

Я изо всех сил пытаюсь заставить автоматический выключатель Monix работать асинхронно с некоторым запросом, который я получаю в своем сервисе, и который не выполняется, поэтому он должен активировать автоматический выключатель, и даже когда он разом…
05 июл '19 в 00:15
0 ответов

Как получить идентификатор текущего выполняющегося волокна ZIO из кода побочных эффектов

Я знаю, что могу узнать идентификатор текущего выполняющегося волокна, позвонив ZIO.descriptor.map(_.id) Однако то, что я хочу, - это нечистая функция, которую я могу вызвать из кода с побочными эффектами, давайте определим ее как def getCurrentFibe…
28 июл '19 в 16:37
2 ответа

ЗИО: Как рассчитать только один раз?

Я использую ZIO: https://github.com/zio/zio в моем build.sbt: "dev.zio" %% "zio" % "1.0.0-RC9" Независимо от того, что я пробовал, мои результаты всегда вычисляются каждый раз, когда они мне нужны: val t = Task { println(s"Compute") 12 } val r = uns…
09 июл '19 в 03:49
4 ответа

Как элегантно выполнять несколько эффектов параллельно с ZIO

Я знаю, что я могу использовать import zio.Task def zip3Par[A, B, C](a: Task[A], b: Task[B], c: Task[C]): Task[(A, B, C)] = a.zipPar(b).zipWithPar(c) { case ((a, b), c) => (a, b, c) } def zip4Par[A, B, C, D](a: Task[A], b: Task[B], c: Task[C], d:…
13 июл '19 в 10:38
0 ответов

ZIO взаимодействует с Cats при параллельных операциях

ZIO не зависит от Catsпоэтому он имеет свои собственные методы для выполнения sequence операции: ZIO.sequencePar а также ZIO.sequence, Я пытался использовать sequence обеспечено взаимодействие с Cats и это работает так же, как ZIO.sequence: import z…
23 июл '19 в 11:53
1 ответ

Scala ZIO Ref тип данных

У меня есть один класс в Scala с четырьмя параметрами, 2 из которых являются переменными, и я хотел использовать тип данных Ref в Zio для управления доступом к этим переменным, вот мой код: import zio._ class Rectangle(val width: Int,val height: Int…
29 июл '19 в 14:29
1 ответ

Scala ZIO.bracket: обработка ошибок при освобождении ресурса

Я хочу создать каталог, затем сделать что-то с каталогом и, наконец, удалить его. Я использую для этого скобку. val fs: FileSystem = ??? val path = ??? ZIO.bracket[Any, Throwable, Path, Unit]( acquire = ZIO{fs.mkdirs(path); path}, release = p => …
02 авг '19 в 18:20
1 ответ

Почему не работает приложение ZIO с мельницей?

Я установил простое приложение ZIO от zio.dev. val myAppLogic = for { _ <- putStrLn("Hello! What is your name?") name <- getStrLn _ <- putStrLn(s"Hello, ${name}, welcome to ZIO!") } yield () При работе в / с Intellij он работает как положен…
17 июл '19 в 21:42
1 ответ

IO Monad vs Reader Monad

Интересно, есть ли связь между IO Monad и Read Monad? Может ли окружение в монаде Reader быть эффектом? Если да, то как ZIO или Cats IO, скалярные эффекты работают с принципами Reader Monad?
03 июл '19 в 23:49
0 ответов

Как я могу получить идентификатор родителя текущего волокна ZIO?

Я знаю, что могу получить дескриптор для текущего выполняющегося волокна, вызвав ZIO.descriptor, Однако как я могу получить некоторую информацию о родительском волокне, например, его идентификатор, не сохраняя его вручную?
02 авг '19 в 08:38