10得票2回答
对象功能不匹配问题

在面向对象编程中,好的实践是要与接口而不是实现进行交互。例如,您可以编写类似以下内容的代码(在这里,我指的是scala.collection.immutable.Seq):// talk to the interface - good OOP practice doSomething[A](x...

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...

10得票1回答
如何在使用Scala进行版本控制时将解析与验证分离?

背景 我有一组配置JSON文件,看起来像以下内容: { "version" : 1.0, "startDate": 1548419535, "endDate": 1558419535, "sourceData" : [...] // nested json inside ...

10得票1回答
将Monix的`Task`转换为Cats的`IO`后会失去什么?

这个简化的情况是我的问题发生的地方...object Main extends IOApp{ def run(args:Seq[String]): IO[ExitCode]={ Task{...} .to[IO] .as(ExitCode.Success) } ...

9得票1回答
使用Unapply来提取相同的类型类。

我有以下情况,给定两种类型 MA 和 MB,我希望能证明它们不仅有一个 Applicative,而且它们都具有相同的基本形状。我尝试了以下方法: type UnapplyM[TC[_[_]], MA, M0[_]] = Unapply[TC, MA]{ type M[X] = M0[X] }...

9得票1回答
Doobie如何在ConnectionIO程序列表上执行事务?

假设我有一个Doobie程序列表(所有参数类型都是 Unit ),如下: val progList: List[ConnectionIO[Unit]] = prog1 :: prog2 :: ... :: Nil 有没有什么办法可以将它们放在一个事务中运行?因为我只知道程序列表的确切组成...

9得票3回答
将底层Future恢复为Cats的EitherT的Left?

如果我有一个表示可能出错信息(String)或成功计算结果(Int)的 Future[Either[String, Int]],那么将 Future 可能的失败移动到左侧作为错误信息非常简单。 def handleFailure(fe: Future[Either[String,Int]])...

9得票4回答
在Scala中将List[Try[T]]转换为Try[List[T]]

我想知道如何在Scala中将List[Try[T]]转换为Try[List[T]]? 我尝试过使用累加器和右折叠,但似乎并不理想。

9得票1回答
如何将 Either[Future[A], Future[B]] 转换为 Future[Either[A, B]]?

我有一个 Either[Future[A], Future[B]] 的实例,我想把它转换成 Future[Either[A, B]]。 自从 我之前的问题 以来,cats 0.8.1 已经发布,改变了库的结构并放弃了 Xor,转而使用右偏的 Either 在 2.12 中。 因此,在先前接...

9得票2回答
构建有状态的对象是否应该使用效果类型进行建模?

在使用像Scala和cats-effect这样的函数式环境时,是否应该使用效果类型来建模具有状态的对象的构造? // not a value/case class class Service(s: name) def withoutEffect(name: String): Service...