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

Есть ли у кошек аналог traverseM от скаляза?
Есть ли у кошек функция, эквивалентная traverseM от скаляза? Я не нашел ничего, что соответствовало бы сигнатуре типа. Вот подпись и описание из документов scalaz scala: final def traverseM[A, G[_], B](fa: F[A])(f: (A) ⇒ G[F[B]])(implicit G:...
318 просмотров
schedule 11.11.2022

Как объединить массивы моноидного типа?
Список или массив моноидов типа A тоже являются моноидами. Теперь я хотел бы combine массивы целых чисел, используя cats . scala> 1 |+| 2 res1: Int = 3 scala> Array(1, 2, 3) |+| Array(1, 2, 3) <console>:21: error: value |+| is...
211 просмотров
schedule 10.09.2022

Как использовать asRight для создания экземпляра Both с кошками
Я пытаюсь создать экземпляр Either , используя asRight в REPL: import cats._ import cats.data._ import cats.implicits._ scala> val x = "xxx".asRight <console>:20: error: value asRight is not a member of String val x =...
1555 просмотров
schedule 17.05.2023

Сопоставители Specs2 для Validated и ValidatedNel
Я не нашел specs2 сопоставителей для ValidatedNel из cats поэтому пишу сопоставители так: import cats.data._ import cats.implicits._ import org.specs2.matcher.Matcher type ValidationFailure = String type ValidationResult[A] =...
141 просмотров
schedule 10.09.2023

пакет cat содержит объект и пакет с одинаковым именем: implicits
Слышали о новой библиотеке Cats-Effect здесь http://typelevel.org/blog/2017/05/02/io-monad-for-cats.html Немедленно добавил следующую строку в мою оболочку аммонита predef.sc interp.load.ivy("org.typelevel" % "cats-core_2.12" % "0.9.0")...
775 просмотров
schedule 03.04.2024

Условия обработки и свободные монады в Scala
Я играю с Кошками и Free Monads , и я написал игрушечную алгебру службы REST и "программу" под названием ensureOneProduct . К сожалению, ensureOneProduct содержит больше стандартного кода, чем мне хотелось бы. Есть ли лучший способ написать...
160 просмотров
schedule 23.03.2023

Применить все функции фильтра к значению
У меня есть функция, которая выглядит так: def createBuilder(builder: InitialBuilder, name: Option[String], useCache: Boolean, timeout: Option[Long]): Builder = { val filters: List[Builder => Option[Builder]] = List( b =>...
113 просмотров

Объедините допустимые значения Seq[ValidatedNel]
У меня есть следующий сценарий: case class MyString(str: String) val val1: ValidatedNel[String, MyString] = MyString("valid1").validNel val val2: ValidatedNel[String, MyString] = MyString("valid2").validNel val val3: ValidatedNel[String,...
678 просмотров
schedule 31.12.2023

Набор экземпляров иерархии объектов запечатанного дела
Представьте, что у меня есть следующее: sealed trait MyEnum object MyEnum { case object Value1 extends MyEnum case object Value2 extends MyEnum ... } Я мог бы довольно легко написать макрос (это несколько строк кода с использованием...
50 просмотров
schedule 08.05.2023

Как установить последовательность Either с кошками Scala без псевдонима типа (см. Пастушие кошек)
Я читал Пастушьи кошки Последний пример на странице обхода списка секвенирования Either для меня не удался. в примере они делают это: - scala> List(Right(1): Either[String, Int]).sequence res5: Either[String,List[Int]] =...
2722 просмотров
schedule 27.06.2022

Scala: как преобразовать HList из ValidatedNel в ValidatedNel из HList
Я успешно использовал cats.data.Validated для решения приведенной ниже проблемы, но столкнулся с проблемой, используя мое существующее решение для класса case с более чем 22 членами (поскольку конструктор нельзя превратить в Function ). Вот моя...
256 просмотров
schedule 17.11.2023

Избегайте шаблонов с помощью OptionT (естественное преобразование?)
У меня есть следующие методы: trait Tr[F[_]]{ def getSet(): F[Set[String]] def checksum(): F[Long] def value(): F[String] def doRun(v: String, c: Long, s: Set[String]): F[Unit] } теперь я хочу написать следующее для...
298 просмотров

Стекирование монад Writer и OptionT
У меня есть следующий код: override def getStandsByUser(email: String): Try[Seq[Stand]] = (for { user <- OptionT(userService.findOneByEmail(email)): Try[Option[User]] stands <- OptionT.liftF(standService.list()):[Try[List[Stand]]]...
246 просмотров

Рекурсивная замена всех значений JSON String с помощью Circe
Используя библиотеку CIRCE и Cats, было бы невероятно полезно иметь возможность преобразовывать все значения string произвольного объекта Json, такого как { "topLevelStr" : "topLevelVal", "topLevelInt" : 123, "nested" : { "nestedStr" :...
855 просмотров
schedule 09.05.2022

Scala Cats: как мне преобразовать List[ValidatedNel[E, A]] в Ior[NonEmptyList[E], List[A]]?
Я старался: def convert[E, A](in: List[ValidatedNel[E, A]]): Ior[NonEmptyList[E], List[A]] = in.separate Я получил: could not find implicit value for parameter G: cats.Bifoldable[cats.data.ValidatedNel] [error] in.separate...
123 просмотров

mapN перекомпонован Применить
Я знаю, что могу составить Apply для работы с вложенными структурами, как в def mapAll[A, B, C, D](o1: List[Option[A]], o2: List[Option[B]], o3: List[Option[C]]) (f: (A, B, C)...
121 просмотров
schedule 16.09.2023

Как внедрить зависимости через Scala Reader из кода Java
Вот служба зависимости: public class Service1 {} Код Scala, который использует его через считыватель: object TupleEx { type FailFast[A] = Either[List[String], A] type Env[A] = ReaderT[FailFast, Service1, A] import...
89 просмотров

Cats-tagless - ошибка аннотации макроса Scala
Я создал простой trait , используя cats-tagless lib: @finalAlg @autoFunctorK(true) trait MyService[F[_]] { def put(element: Element): F[Element] def get(elementId: Id): F[Element] def all(): F[List[Element]] def delete(elementId:...
393 просмотров

Существуют ли методы тройного равенства === за пределами Cats в Scala?
Я потратил некоторое время на поиск в Google метода тройного равенства, отличного от Cats, но не могу найти ничего, кроме Scalaz. К сожалению, мне не удалось выполнить импорт для === в этой библиотеке. Может кто поможет, большое спасибо.
646 просмотров

Эффективная служба не может найти неявный экземпляр монады, связанный с контекстом
Я еще не очень силен в концепции эффектов, поэтому некоторые из моих предположений могут быть совершенно неверными. Пожалуйста, исправьте меня всякий раз, когда вы видите такие случаи. Я строю приложение (не с нуля, а скорее разрабатываю скелет)...
303 просмотров