scalaz相关内容
onSO解释了为什么像scalaz、cat(Scala)或Arrow(Kotlin)这样的验证不能是Monad。 据我所知,这是因为他们根据应用函数器对Monad进行了建模,并且将验证的期望行为作为应用(集合所有无效)与将验证作为Monad的期望行为(序列验证和在第一个无效时快速失败)不同。因此,当您希望快速失败时,需要将验证转换为任一验证(这是一个单体)。 在https://groups
..
我正在尝试构建一个 Scala 播放应用程序,但由于 repo 不再启动,依赖项突然无法下载 下面的完整堆栈跟踪.我曾经获得 scalaz-stream v0.7a 依赖关系很好,但它似乎不再出现在网站上.有一个快照 0.7a 可供我使用.但是我只需要知道如何将版本切换到这个版本? 我不知道 scalaz 依赖项的来源或定义的位置.我自己没有设置它,如果我搜索目录中的所有文件,则没有提
..
我希望能够应用一个操作 f: (T,T) =>Scala 中的 T 到 Option[T] 值.如果两个值中的任何一个为 None,我希望结果为 None. 更具体地说,我想知道是否有更短的方法来执行以下操作: def opt_apply[T](f: (T,T) => T, x: Option[T], y: Option[T]): Option[T] = {(x,y) 匹配 {案例(一些(
..
我经常面临以下情况:假设我有这三个功能 def firstFn: Int = ...def secondFn(b: Int): Long = ...def thirdFn(x: Int, y: Long, z: Long): Long = ... 而且我也有 calculate 功能.我的第一种方法可能如下所示: def calculate(a: Long) =thirdFn(firstFn
..
我想在 Scala 中以函数方式对字符串执行多个有序且连续的 replaceAll(...,...). 最优雅的解决方案是什么?欢迎斯卡拉兹!;) 解决方案 首先,让我们从 replaceAll 方法中取出一个函数: scala>val replace = (from: String, to: String) =>(_:String).replaceAll(from, to)替换:
..
我对 scalaz 还很陌生,我想弄清楚为什么下面的代码有效: 导入scalaz._导入 Scalaz._标度>地图[字符串,列表[字符串]]() |+|地图[字符串,列表[字符串]]()res3:scala.collection.immutable.Map[String,List[String]] = Map() 但这并没有... 导入scalaz._导入 Scalaz._标度>Map[S
..
给定一个 Seq[Either[String,A]] 的序列,其中 Left 是一条错误消息.我想获得一个 Either[String,Seq[A]],在那里我得到一个 Right(这将是一个 Seq[A]), 如果序列的所有元素都是 Right.如果至少有一个 Left(错误消息),我想获取第一条错误消息或所有错误消息的串联. 当然,您可以发布 cat 或 scalaz 代码,但我也对不使
..
我想知道如何在 Scala 中将 List[Try[T]] 转换为 Try[List[T]]? 我曾尝试使用累加器并向右折叠,但似乎并不理想. 解决方案 使用猫就这么简单: 导入猫._导入cats.data._导入 cat.implicits._导入 scala.util.{尝试,成功,失败}val 尝试: List[Try[Int]] = List(Success(1), Suc
..
对于一个monad M,是否可以将A =>M[B] 变成 M[A =>B]? 我试过遵循这些类型无济于事,这让我认为这是不可能的,但我想我还是会问.另外,在 Hoogle 中搜索 a ->m b ->m (a -> b) 没有返回任何东西,所以我运气不佳. 解决方案 实践中 不,它不能完成,至少不能以有意义的方式完成. 考虑这个 Haskell 代码 action ::
..
我正在寻找一个更通用的解决方案,它利用 monads(可能还有 monoids)来实现与if( xs.contains(None) ) None else Some(xs.flatten) 为 Seq[Option[A]] 类型的 xs 做. 如何使用 Scalaz 做到这一点?我觉得我遗漏了一些明显的东西. 解决方案 有两个 monad 是不够的(对于 M)和已经足够了(对于 N)
..
我正在尝试找到“正确"的演员实现.我意识到有很多它们,选择一个有点令人困惑.就我个人而言,我对远程演员特别感兴趣,但我想完整的概述会对许多其他人有所帮助.这是一个非常普遍的问题,所以请随意回答您所了解的实现. 我了解以下 Scala Actor 实现 (SAI).请补充缺少的. Scala 2.7(不同于) Scala 2.8 阿卡 (http://www.akkasource.o
..
我尝试使用谷歌搜索,但我得到的只是关于小名人的故事.鉴于缺乏文档,什么是 DList? 解决方案 这是一个差异列表,遵循 "差异列表作为函数" scala>val (l1, l2, l3) = (List(1, 2, 3), List(4, 5, 6), List(7, 8, 9))l1: List[Int] = List(1, 2, 3)l2: List[Int] = List(4,
..
刚开始学习Scalaz.这是我的代码 trait Monoid[A] {def mappend(a1: A, a2: A): Adef mzero: A}对象幺半群{隐式 val IntMonoid: Monoid[Int] = new Monoid[Int] {def mappend(a1: Int, a2: Int): Int = a1 + a2def mzero: Int = 0}隐式 v
..
如何使用 MonadPlus 将 Eithers 的 List 转换为 Lists 的 Either.分开? 在 this answer 中,作者声称此解决方案,但未能提供导入或完整示例: 如果 scalaz 是您的依赖项之一,我会简单地使用单独的: val el : List[Either[Int, String]] = List(Left(1), Right("Success")
..
可能的重复: 更新 Scala 案例类的操作 这个问题是今晚我想到的. 我有两个相同类型的实例化案例类. case class Foo(a : Option[String], b : Option[String], c : Option[String]) 让我们调用实例化的类 A 和 B. val a = Foo(a=Some("foo"), b=Some("bar"), c=
..
我有一个列表 monad List[Int].我想根据列表的值生成效果(分离和状态).这是我的 monad 堆栈和运行 monad 堆栈的代码.我的问题是定义 checkNum 的正确方法应该是什么,以便我可以生成正确的效果? 我的预期输出应该 List(("", \/-(1), ("Error: 2", -\/(Throwable())), ("",\/-(3)), ("Error: 4
..
在 scalaz 7.2.6 中,我想在 Disjunction 上实现 sequence,这样如果有一个或多个左边,它返回一个列表,而不是只取第一个(如 Disjunction.sequenceU): import scalaz._, Scalaz._列表(1.right, 2.right, 3.right).sequenceres1: \/-(List(1, 2, 3))List(1.rig
..
因为我想结合适用于长方法 Future 的 Kleisli 可能会失败 Either,所以我需要叠加效果.这是在 Kleisli 中堆叠效果的结果代码.scalaz 中是否有现有的组合器? type FutureEitherT[A] = EachT[Future, String, A]def toKleisliEitherTFromDisjunction[A](f: Kleisli[Future
..
假设我已经索引了集合(List 或 Map 在这里无关紧要): val zipped = List(1 -> "A", 3 -> "C", 8 -> "D") 很难处理(因为每个操作,比如map,都必须处理index),所以我想传递给业务处理程序的是: case class Indexed[T](seq: Seq[T], i: Seq[Int])val unzipped = Indexed(
..
我发现现代 scalaz-stream 中的 scalaz.stream.Process 中没有更多的 awakeEvery.那么如何运行带有句点的东西? 解决方案 已移至 scalaz.stream.time 包: 导入scalaz.stream._标度>隐式 val sc = 新 java.util.concurrent.ScheduledThreadPoolExecutor(1)s
..