Вопросы по теме 'scala-cats'

Как библиотека Cats в Scala связана со скалязами?
Как библиотека Cats соотносится с scalaz ? В проекте Cats упоминается, что он произошел от скаляза.
6875 просмотров
schedule 16.11.2022

Что это ? тип?
Я пытаюсь реализовать экземплярcats Monad для типа с несколькими параметрами типа. Я посмотрел экземпляр Either котов, чтобы посмотреть, как это там сделано. Часть кода экземпляра Either Monad от котов скопирована ниже: import...
370 просмотров
schedule 06.05.2023

Монады VS Аппликативные функторы для фьючерсов
Предположим, я хочу агрегировать данные из двух удаленных служб и обслуживать ответ как можно быстрее: def loadUser: Future[User] def loadData: Future[Data] case class Payload(user: User, data: Data) Я понимаю, что этот последовательно...
1533 просмотров
schedule 06.05.2022

Как преобразовать дизъюнкции будущего в будущее дизъюнкции
У меня есть результат метода: val res: Future[Int] Xor Future[String] = getResult(x) и хотел бы преобразовать его и использовать как Future[Int Xor String] Я не смог экстраполировать свой вариант использования из блога пастушьих кошек и я...
961 просмотров

Найти первый определенный элемент в коллекции в Scala
Учитывая коллекцию coll: C[A] и функцию f: A => Option[B] , каков идиоматический способ в Scala получить первый элемент в coll , для которого определено f , без оценки всей коллекции? Вот моя предполагаемая подпись: def...
245 просмотров

Как сложить коллекцию эндоморфизмов с кошками
Учитывая функцию def f(i: I) : S => S Я хотел бы написать довольно распространенный комбинатор g def g(is : Seq[I], init: S) : S Простая реализация использует только классический Scala def g(is : Seq[I], init: S) : S =...
434 просмотров

значение |@| не является членом группыcats.data.Validated
Когда я использую кошек 0.9.0, я могу легко сделать import cats.data.Validated import cats.data.Validated._ import cats.syntax.all._ import cats.implicits._ val x = Validated.valid[List[String], Int](10) val y = Validated.valid[List[String],...
614 просмотров
schedule 22.09.2022

Как присвоить Future [Option [Int]] OptionT [Future, Int]
Я создал этот простой преобразователь монад type FutureOptionInt = OptionT[Future, Int] теперь я могу легко создать экземпляр этого с помощью 1.pure[FutureOptionInt] это хорошо. но у меня есть другая функция, которая возвращает мне...
86 просмотров
schedule 20.05.2022

Как сделать его монадой?
Я пытаюсь последовательно проверить список строк и определить тип результата проверки следующим образом: import cats._, cats.data._, cats.implicits._ case class ValidationError(msg: String) type ValidationResult[A] =...
78 просмотров
schedule 10.03.2023

Цепочка кошек, подтвержденная с помощью andThen
Я читаю эту статью http://typelevel.org/cats/datatypes/validated.html В нем говорится, что Validated можно использовать для последовательной проверки с использованием метода andThen. Это означает, что мы останавливаемся на первой ошибке и не...
691 просмотров
schedule 25.10.2022

Пример Kleisli в Cats для Scala не работает
Я пробую следующий пример на рабочем листе Scala: import cats._, cats.data._, cats.implicits._ val f = Kleisli { (x: Int) => (x + 1).some } val g = Kleisli { (x: Int) => (x * 100).some } Однако он не печатает проверку, ошибка, которую...
459 просмотров
schedule 10.11.2022

Как я могу реорганизовать это, чтобы использовать преобразователи Monad и для понимания?
Как я могу реорганизовать этот код, чтобы использовать коты DoesT, ReaderT(?) и Future, чтобы я мог избавиться от вложенности и написать его в стиле для понимания? import scala.concurrent.Future trait Foo[A, B, C, D, E] { def bar(f: A =>...
84 просмотров
schedule 28.05.2024

Кошки: метод tailRecM без хвостовой рекурсии для монад
В cats , когда монада создается с использованием признака Monad , должна быть предоставлена ​​реализация метода tailRecM . У меня есть сценарий ниже, который я обнаружил невозможным для хвостовой рекурсивной реализации tailRecM sealed...
1373 просмотров

Scala: как использовать функторы для типажей параметров нескольких типов
У меня есть и ADT, который в основном является оболочкой над Function1 : case class Abstract[M[_], A, B](f:M[A] => M[B]) { def fn: M[A] => M[B] = { case x: M[A] => f(x) } } Я хочу отобразить их, поэтому я определил Functor...
469 просмотров

монада трансформеры в кошках scala
Я пытаюсь изучить библиотеку кошек scala. Так что я совершенно не знаком с функциональным программированием. Пожалуйста, помогите мне извлечь значение из приведенного ниже примера функции: import cats._ import cats.data._ import cats.syntax._...
271 просмотров
schedule 04.07.2023

Декартовский построитель для OptionT
Я хочу присоединиться к 2 Future[Option[_]] : def foo: Future[Option[Int]] = ??? def baz: Future[Option[Int]] = ??? Можно присоединиться к паре Future : foo |@| baz map( (fooOpt, bazOpt) => ???) И можно присоединиться к паре...
145 просмотров
schedule 03.11.2023

Монада Ничего не работает у кошек
У меня проблемы с cats / monads /пониманием. Пожалуйста, рассмотрите следующий фрагмент: import cats._ import cats.implicits._ final case class My[T]() implicit val monadMy: Monad[My] = new Monad[My] { ... } // this compiles def test11[A,...
247 просмотров
schedule 27.10.2022

Список Клейсли в Клейсли списка
Мне было интересно, есть ли способ превратить List[Kleisli[Option, Int, Int]] в Kleisli[Option, Int, List[Int]] . В частности, у меня есть список клейсли, составленный следующим образом: def k(a: String) = Kleisli[Option, Int, Int](m =>...
292 просмотров
schedule 20.05.2022

Вызов универсальной функции с помощью Functor с использованием подкласса (cats / scalaz)
Я возился с некоторыми базовыми примерами Cats / Scalaz, а также просматривал учебные пособия, чтобы почувствовать себя, и наткнулся на случай, который, я уверен, есть решение. Можно ли вызвать обобщенную функцию, которая принимает контекстное...
279 просмотров

Использование функции сдвига из эффекта кошки
Я пытаюсь использовать функцию сдвига эффекта кошек для асинхронного запуска кода. Реализация функции: def asyncSendMsg(producer: KkProducer)(record: KkRecord) : IO[Either[String, RecordMetadata]] = for { res <-...
623 просмотров
schedule 26.05.2022