12得票1回答
如何在最新版本的Cats中使用笛卡尔积|@|?

我已经将一些使用cats 0.2编写的代码迁移到cats 0.6,但我的代码现在无法正常工作:import cats.data.Validated import cats.std.all._ val valid1: Validated[List[String], Int] = valid(1...

7得票1回答
什么是 ? 类型?

我正在尝试为一个具有多个类型参数的类型实现cats Monad实例。我查看了cats Either实例,以了解如何在那里完成。下面是从cats中复制的EitherMonad实例代码的一部分: import cats.Monad object EitherMonad { implicit...

8得票1回答
猫的NonEmptyList与Scala标准库::之间的区别

我最近在学习cats库,并遇到了一个叫做NonEmptyList的类。阅读完api后,我不禁思考:是什么促使cats的作者创建了一个新的类,而不是利用已有的(::)来使用类型类进行扩展。它甚至没有列在cats的github页面上,所以我来这里询问。也许是因为cons是List的子类型吗?(虽然...

15得票2回答
猫:Monads的非尾递归tailRecM方法

在 cats 中,当使用 Monad 特质创建一个 Monad 时,应该提供方法 tailRecM 的实现。 下面有一个场景,我发现无法提供 tailRecM 的尾递归实现。 sealed trait Tree[+A] final case class Branch[A](lef...

10得票3回答
Scala / Cats:如何解压缩 NonEmptyList

标准库在 List 上提供了 unzip 方法: scala>val l = List((1, "one"), (2, "two"), (3, "three"), (4, "four"), (5, "five")) scala> l.unzip // res13: (List...

8得票1回答
将Set转换为cats.data.NonEmptySet?

在Cats中是否有一个扩展方法,可以将标准的Set转换为Option[cats.data.NonEmptySet]?

11得票3回答
Scala cats,遍历Seq

我知道我可以遍历List。 import cats.instances.list._ import cats.syntax.traverse._ def doMagic(item: A): M[B] = ??? val list: List[A] = ??? val result: M[...

7得票1回答
如何使用 cats 和 State Monad

我第一次使用Cats来解决圣诞编程挑战的第一天,我想知道是否有可能改进这个过程。 给定一个方法update,其签名如下: def update(i: Instruction): PosAndDir => PosAndDir 我想到了以下解决方案: val state: State[...

8得票1回答
在Scala+Cats中使用自由Monad处理任意树结构问题

我正在创建一个语法库,它将有两种不同的解释:1)基于语法对字符串进行解析 2)生成由语法定义的字符串。 该库使用cats创建语法的AST作为自由单子。然而,似乎它可能并不完全适合,因为自由单子会创建类似于语句列表的列表表示形式,但是语法与语句列表相差甚远,更接近任意树结构。 我使用〜运算符...

10得票1回答
Scala Cats Effects - IO Async Shift - 它是如何工作的?

这里是一些使用IO Monad的Scala cats代码: import java.util.concurrent.{ExecutorService, Executors} import cats.effect.IO import scala.concurrent.{ExecutionC...