Вопросы по теме '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 просмотров
schedule
01.05.2024
Объедините допустимые значения 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 просмотров
schedule
29.11.2022
Стекирование монад 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 просмотров
schedule
01.09.2022
Рекурсивная замена всех значений 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 просмотров
schedule
24.01.2023
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 просмотров
schedule
20.07.2022
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 просмотров
schedule
04.02.2022
Существуют ли методы тройного равенства === за пределами Cats в Scala?
Я потратил некоторое время на поиск в Google метода тройного равенства, отличного от Cats, но не могу найти ничего, кроме Scalaz. К сожалению, мне не удалось выполнить импорт для === в этой библиотеке.
Может кто поможет, большое спасибо.
646 просмотров
schedule
22.02.2024
Эффективная служба не может найти неявный экземпляр монады, связанный с контекстом
Я еще не очень силен в концепции эффектов, поэтому некоторые из моих предположений могут быть совершенно неверными. Пожалуйста, исправьте меня всякий раз, когда вы видите такие случаи.
Я строю приложение (не с нуля, а скорее разрабатываю скелет)...
303 просмотров
schedule
08.05.2023