es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Tag: SCALA-CATS

¿Cómo devolver valores con Reader monads anidados usando cats?

¿Existe alguna forma de evitar llamar al método “run” dos veces y hacerlo solo una vez desde el método principal o esta es la forma correcta de hacerlo en Reader anidados? case class Dependencies(showService: ShowService, sumService: SumService) class ShowService { def show(s: String): IO[Unit] = IO {println(s)} } class SumService() . . . Read more

scala-cats EitherT: encadenando futuros En el contexto de programación en Scala con la librería Cats, `EitherT` permite encadenar futuros.

Estoy siguiendo esto. La estructura de mi programa es la siguiente: (for { data <- myService.fetch(id).eitherT values <- anotherService.fetch(data.id).eitherT // todo: procesar valores como parte de la comprensión para } yield data.id).value myService.fetch devuelve Future[…]. anotherService.fetch también devuelve Future[…], y values es una Seq. Quiero procesar las entradas en values . . . Read more

Cómo cancelar un futuro completado con cats effects 3

Este código prueba la cancelación de una fibra creada desde un completable future y está fallando: val toCancel = CompletableFuture.supplyAsync { () => Thread.sleep(20000) () } val test = for { foo <- IO.fromCompletableFuture(IO(toCancel)).start _ <- IO.sleep(1.second) _ <- foo.cancel } yield toCancel.isCancelled assertIOBoolean(test) ¿Es esto un bug de Cats . . . Read more

scala cats aplicativo no se pudo compilar

Intento seguir https://typelevel.org/cats/typeclasses/applicative.html trait Applicative[F[_]] extends Functor[F] { def product[A, B](fa: F[A], fb: F[B]): F[(A, B)] def pure[A](a: A): F[A] } // Implementación de ejemplo para Either con preferencia por la derecha implicit def applicativeForEither[L]: Applicative[Either[L, *]] = new Applicative[Either[L, *]] { def product[A, B](fa: Either[L, A], fb: Either[L, B]): . . . Read more