Описание тега scala-cats
Cats - это библиотека, которая предоставляет абстракции для функционального программирования на Scala.
2
ответа
Как явно вызывать и использовать Functor для функции
import scala.language.higherKinds import cats.Functor import cats.instances.list._ import cats.instances.function._ val list1 = List(1, 2) val list2 = Functor[List].map(list1)(i => i + 1) Но вещи не работают так гладко для функций, val f1 = (i: I…
13 сен '18 в 07:46
1
ответ
Шаблон журнала событий в Scala
Все наши сервисы написаны на Scala. В основном мы пишем чистый функционал Scala, используя Cats. Я пытаюсь выяснить, есть ли шаблон проектирования в Cats или Scala в целом, который я могу использовать для разработки EventLogger. Этот eventLogger дол…
14 апр '18 в 04:38
1
ответ
Typelevel Cats. Эффект против Typlevel eff. что и почему?
Я хочу заняться программированием, которому нужны эффекты (а кому нет:-). В частности, что-то вроде скалярного Task для запуска асинхронного извлечения данных и возврата к эффекту Future, который будет обрабатывать результаты по завершении. Я замети…
19 апр '18 в 01:09
1
ответ
Почему запуск unsafeRunSync() дважды нарушает RT
У меня есть следующее приложение, которое я не мог понять, почему при его запуске дважды он нарушает RT: val program = for { _ <- IO { println("Welcome to Scala! What's your name?") } _ <- IO { println(s"Well hello, foo") } } yield () program.…
10 ноя '17 в 11:49
3
ответа
Условное поведение со свободными монадами
Я следую учебному пособию здесь: http://typelevel.org/cats/datatypes/freemonad.html и пытаюсь изменить его для работы с кешем перед хранилищем значений ключей. Это то, что я придумал до сих пор, но я получаю ошибку компилятора с valueGetOperation, Я…
15 янв '17 в 09:41
1
ответ
Эффекты использовать для обертывания нечистых методов?
Я пытаюсь понять, как использовать эффект монады (cats.effect.IO или же scalaz.IO не имеет значения). Представьте, что у меня есть следующий метод: def extract(str: String): String = { if(str.contains("123")) "123" else throw new IllegalArgumentExce…
27 май '18 в 14:04
2
ответа
Как я могу проверить значения параметров с помощью проверки кошек?
Я пытаюсь изменить код, который использует проверку кошек, что-то вроде: case class Example(text: String, image: String) case class ValidExample(text: String, image: String) import cats.data.Validated._ import cats.implicits._ def validText(text: St…
13 фев '19 в 09:26
1
ответ
Эквивалент карты Haskell для кошек Scala
Предоставляет ли кошки функцию, эквивалентную mapM в Haskell? Это должно выглядеть так: def mapM[A, B, F[_], Col[_]] (col: Col[A])(f: A => F[B])(implicit F: Applicative[F], T: Traverse[Col]): F[Col[B]] = T.sequence[F, B](F.map(col)(f)) К сожалени…
18 апр '18 в 18:36
1
ответ
Кошки не могут разрешить символ |@|
У меня есть следующий код, который я получил здесь: http://underscore.io/blog/posts/2015/06/10/an-introduction-to-cats.html. import cats.data.Xor import cats.data.{Validated, Xor} import cats.syntax.apply._ // For |@| syntax import cats.std.list._ v…
17 ноя '16 в 11:06
1
ответ
Фильтруйте F[List[Int]], используя Int => F[Boolean], где F - универсальный
Я пытаюсь определить абстрактную алгебру, которая позволит мне отложить выбор того, какую монаду я буду использовать для переноса эффективной операции (IO, Task, Future и т. Д.) До запуска программы. trait MyAlg[F[_]] def isValid(v: int): F[Boolean]…
05 сен '18 в 12:34
2
ответа
cats.data.EitherT с траверсой
У меня есть вопрос об использовании Traverse вместе с EitherT. Допустим, у нас есть такой код: def validate(s: String): EitherT[Future, NumberFormatException, Int] = { EitherT(Future.successful(try { Right(s.toInt) } catch { case e: NumberFormatExce…
14 авг '18 в 07:34
1
ответ
Кошки аппликативно поднимают значение "пусто" в опцию
Мне было интересно, есть ли способ поднять значения в Option, имея, например, представление об их пустоте import cats._, cats.data._, cats.implicits._ Applicative[Option].pure(List.empty[String]) дает res1: Option[List[String]] = Some(List()) Но я н…
11 авг '17 в 07:33
1
ответ
Как остановить переход состояния, когда состояние удовлетворяет некоторому условию?
Я довольно новичок в скалязе / кошках и у меня есть вопрос о State монада (cats или же scalaz не имеет значения). Рассмотрим следующий хорошо известный пример с Stack: object StateTest { type Stack = List[Int] def main(args: Array[String]) = { print…
28 май '18 в 21:56
1
ответ
Почему fmap должен отображать каждый элемент списка?
После прочтения книги " Изучите свой Haskell для большого блага" и очень полезной вики-книги " Теория категорий Haskell", которая помогла мне преодолеть распространенную ошибку категории, заключающуюся в путанице объектов категории с объектами прогр…
19 апр '16 в 10:35
1
ответ
Как создать Traversable с помощью ввода-вывода с эффектом кошки с учетом асинхронного вызова, который будет вызываться несколько раз
Что я действительно пытаюсь сделать, так это отслеживать несколько файлов, и когда любой из них изменяется, я хотел бы обновить какое-то состояние и создать побочный эффект, используя это состояние. Я представляю, что я хочу это scan через Traversab…
20 июл '18 в 17:59
1
ответ
Scala cat map EitherT Futures с парами ключ-> значение
Я немного застрял, но, возможно, кто-то может мне помочь. У меня есть список идентификаторов, я хочу сделать вызов API: val ids:List[String] = List("id1","id2","id3", "id4") И этот метод API, который возвращает EitherT[Future, CustomError, JValue] d…
10 апр '18 в 10:13
1
ответ
Applicative style using cats library
Это продолжение моего предыдущего вопроса: Предположим, я хочу использовать Applicative to apply function A => B => C в List[A] а также List[B],I believe it looks like that in Haskell: pure f <*> as <*> bs // apply f to List[A] and…
01 авг '17 в 07:23
3
ответа
Scala: добавить только некоторые в неизменный список
Скажем, нам дали List[String] и куча Option[String]'s позвони им a, b, c, Скажем, я хочу добавить действительные (некоторые) Options[String]'s снаружи a, b, c к моему существующемуList[String]. Как лучше всего это сделать, используя неизменные струк…
09 мар '18 в 05:54
1
ответ
Scala: Mock init завершается неудачно с параметром типа Cats IO
При написании тестов я сталкиваюсь со следующим исключением: java.lang.ClassCastException: codegen.java.lang.Object$MockitoMock$641592186 cannot be cast to cats.effect.IO (MyRepositorySpec.scala:19) Что происходит при запуске этого тестового кода с …
27 сен '17 в 12:54
1
ответ
Бесплатный переводчик монад только с побочным эффектом
Мне нужно написать бесплатный интерпретатор монады, который выполняет только эффективные действия, но не возвращает никакого результата. Для бесплатного аппликативного я использовал переводчик с MyAction ~> Const[Unit, ?] подпись и называется это…
13 июн '18 в 18:34