Описание тега cats-effect

Часть экосистемы Scala Cats для типа ввода-вывода и связанных эффектов.
1 ответ

Почему Отложенный фабричный метод имеет возвращаемое значение в контексте F

Я смотрю на cats.effect.concurrent.Deferred и заметил, что все чистые фабричные методы внутри объекта-компаньона возвращают F[Deferred[F, A]], не просто Deferred[F, A] лайк def apply[F[_], A](implicit F: Concurrent[F]): F[Deferred[F, A]] = F.delay(u…
1 ответ

Как создать Traversable с помощью ввода-вывода с эффектом кошки с учетом асинхронного вызова, который будет вызываться несколько раз

Что я действительно пытаюсь сделать, так это отслеживать несколько файлов, и когда любой из них изменяется, я хотел бы обновить какое-то состояние и создать побочный эффект, используя это состояние. Я представляю, что я хочу это scan через Traversab…
20 июл '18 в 17:59
0 ответов

Поток fs2 в сжатый zip fs2 stream

У меня есть поток потоков FS2, и я хотел бы создать сжатый поток, готовый для записи в файл с *.zip расширение или для скачивания. Проблема в том, что поток никогда не заканчивается. Вот код: package backup import java.io.OutputStream import cats.ef…
09 фев '19 в 01:25
1 ответ

Несоответствие типов; найдено: cats.Show[shapeless.CNil] обязательно: cats.Show[A] после добавления скалярного параметра -Ypartial-unification в sbt

У меня есть код ниже. import enumeratum.{Enum, EnumEntry} sealed abstract class AppEnvironment extends EnumEntry object AppEnvironment extends Enum[AppEnvironment] { case object Local extends AppEnvironment case object Testing extends AppEnvironment…
10 янв '19 в 07:12
1 ответ

Cats Effect IO: создание IO с коллекциями Scala

Это игрушечная программа Scala, которая считывает с консоли 10 цифр и добавляет 1 к каждой из них: import cats._ import cats.effect._ import cats.implicits._ object Main extends IOApp { def printLine[A](x: A)(implicit show: Show[A]): IO[Unit] = IO(p…
1 ответ

Эффект кошки: как получить неявный NonEmptyParallel

Я пытаюсь использовать функцию parMapN, и я не могу скомпилировать код. Если у меня тип IO, то проблем нет, но когда я использую типы в своих функциях, мне не удается заставить его работать. В приведенном ниже фрагменте есть randomMessage, который к…
1 ответ

Как добавить правильную обработку ошибок в Ресурс кошачьего эффекта

Я пытаюсь получить какой-то базовый файл ввода / вывода (запись / чтение) чисто функциональным способом, используя эффект кошки. После изучения этого урока, вот что я закончил для чтения файла: private def readFile(): IO[String] = for { lines <- …
1 ответ

Что эквивалентно fs2.Scheduler в fs2 (0.10.x) в более новых версиях

Я перевожу версию fs2 0.10.x на версию 1.0.0. Наш код использует fs2.Scheduler в версии от fs2 0.10.x. Я не знаю, что является эквивалентом в более новой версии FS.0 1.0.0. Я ознакомился с руководством по миграции, но не смог найти руководство по ми…
07 янв '19 в 17:54
1 ответ

appback logx.xml не используется с кошками IOApp

У меня есть приложение Scala, которое использует клиентскую библиотеку AWS Kinesis. Я использую logback с кодировщиком logstash для форматирования журналов из моего приложения и KCL как JSON. Мое приложение также написано с использованием cats.effec…
1 ответ

Как написать транзакцию Дуби, когда IO застрял в середине

Я хочу написать базовую транзакцию чтения / записи Дуби, но главное, что есть IO ответный звонок посередине. Я хочу сделать что-то вроде этого: abstract class MyDAO { def readSomething(id: String): ConnectionIO[Option[Something]] def writeSomething(…
13 дек '18 в 20:43
1 ответ

Эффект кошки: Как преобразовать Map[x,IO[y]] в IO[Map[x,y]]

У меня есть карта строки IO, как это Map[String, IO[String]]Я хочу превратить его в IO[Map[String, String]], Как это сделать?
27 дек '18 в 13:36
1 ответ

Intellij: выражение типа IO[Long] не соответствует ожидаемому типу FS2_[O2_]

Я попробовал код этого блога: a-streaming-library-with-a-superpower-fs2-and-функциональное программирование В Intellij этот код: Stream("bob", "alice", "joe") .evalMap(name => IO.fromFuture(IO(loadUserIdByName(name)))) // <- here is the except…
24 ноя '18 в 08:26
1 ответ

Эффект кошки - параллельная композиция независимых эффектов

Я хочу объединить несколько IO значения, которые должны работать независимо друг от друга параллельно. val io1: IO[Int] = ??? val io2: IO[Int] = ??? На мой взгляд, у меня есть варианты: Используйте волокна кошачьего эффекта с рисунком вилкиval paral…
1 ответ

Значение flatMap не является членом параметра типа F[Long] при использовании cats.effect

Это, возможно, задавали много раз прежде, но ни одно из предложений, которые я нашел, не помогло. У меня есть простой код Scala, который генерирует длинное число, которое зависит от некоторых побочных эффектов. Я помещаю вещи в монаду ввода / вывода…
18 фев '19 в 04:27
1 ответ

Как реализовать несколько пулов потоков в приложении Play с использованием IO с эффектом кота

В моем приложении Play я обслуживаю запросы cats-effect"s IO, вместо Future в контроллере, вот так (супер упрощенно): def handleServiceResult(serviceResult: ServiceResult): Result = ... def serviceMyRequest(request: Request): IO[ServiceResult] = ...…
2 ответа

Как мне обернуть исключение EitherT в левое?

Представь у меня OptionT[IO, Value] как это case class FailureMsg(code: String, ex: Option[Throwable]) val fff: IO[Either[FailureMsg, Int]] = OptionT.some[IO](12345) .map { value ⇒ println("Mapping over") value } .flatMapF[Int](_ ⇒ IO.raiseError(new…
24 сен '18 в 08:55
1 ответ

Реализация отменяемого setInterval с использованием таймера кошачьего эффекта

Это то, что я пытался, но после первого сна его нельзя отменить. import cats.syntax.all._ import cats.effect._ import scala.concurrent.duration._ import scala.language.higherKinds object Foo { def setInterval[F[_]](duration: FiniteDuration)( fa: F[U…
17 авг '18 в 01:38
1 ответ

Как прикрепить эффекты к F в Resource[F, A], не используя A?

Учитывая Resource[F, A]Какой самый идиоматичный способ прикрепить эффекты (например, метрики, ошибки регистрации) к F без использования A (т.е. .use)? Я могу легко сделать это с F[A] но я зависим от API, который специально возвращает Resource[F, A] …
12 фев '19 в 01:07
1 ответ

Как писать хвостовые рекурсивные функции при работе внутри монад

Вообще у меня проблемы с выяснением того, как писать хвостовые рекурсивные функции при работе "внутри" монад. Вот быстрый пример: Это из небольшого примера приложения, которое я пишу, чтобы лучше понять FP в Scala. Прежде всего пользователю предлага…
02 фев '19 в 10:28
1 ответ

Скала кошки неоднозначные скрытые ценности

import cats._ import cats.implicits._ trait Console[F[_]]{ def readInput() : F[Int] def print(msg: String) : F[Unit] } class Foo { def doFoo[F[_]: Monad](number: Int)(implicit C: Console[F]) : F[Unit] = { C.readInput().flatMap{input => if (input …
04 фев '19 в 05:08