问题标签 [scalaz]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1212 浏览

scala - akka-camel vs scalaz-camel

有没有人对 akka-camel 和 scalaz-camel-akka 进行过评估?我喜欢 scalaz 带来的函数式方法,并且稍微使用了 scalaz-camel-akka,但并没有真正使用 akka-camel。

我会对一些比较点非常感兴趣。

0 投票
4 回答
912 浏览

scala - scalaz中的笛卡尔积遍历

Eric Torreborre关于迭代器模式本质一文的博文中,他描述了遍历的笛卡尔积如何也是遍历。

谁能给我看一个使用scalaz 库的例子,因为我不知道。假设问题是,对于List[Int]我想提供以下两者:

  1. Int列表中元素的总和
  2. AList[String]其元素是通过将“Z”附加到Ints的字符串表示来创建的

我的理解是,我可以使用traverse但仅实际遍历我的结构一次的方式来执行此操作,这与此解决方案不同:

注意 1 -我知道还有其他方法可以做到这一点,我不需要遍历这个例子,也不一定是最清晰的解决方法。但是,我正在尝试理解 traverse,因此我真的在寻找所述问题的答案


编辑- 感谢下面的missingfaktor展示了如何使用State. 我想我想知道的是如何组合这两个独立的计算。例如; 我的功能理论上如下:

我想拥有这些相互独立的积累机制,然后选择是List[Int]使用它们中的一个还是两个来遍历我。我想象一些代码有点像这样:

Eric 暗示这是可能的,但我不知道该怎么做~ 即我不知道如何定义shapeaccum以一种可以组合它们的方式,也不知道如何组合它们。

注意 2并不 意味着具有上述签名的函数shapeaccum它们是具有执行上述遍历所需类型的表达式。

0 投票
1 回答
77 浏览

scala - 使用 scalaz 函数编译 foldleft 时,scala 编译器奇怪地抱怨

我最近碰巧和 scalaz 一起工作>>=。我将所有应该绑定的方法>>=放在一个列表中,foldleft如下所示,

现在我收到一个有趣的错误,抱怨 required 类似于 found

我无法理解这种行为。有什么遗漏吗?

0 投票
3 回答
1711 浏览

validation - Scalaz Validation,验证内在价值

我有一个验证对象

我需要进行第二次验证,例如检查实际整数值是否等于 100。如果我做

我得到:

如何以最简洁的方式将 vv 也作为 Validation[String, Option[Int]]

=========

从我自己找到可能的解决方案:

虽然有效,但看起来并不简洁优雅

===============

我自己的第二个解决方案,但也看起来过于复杂:

0 投票
2 回答
3036 浏览

scala - 组合2个列表的元素

假设我们有两个列表:

我想要的是:List("a1", "b2", "c3")也就是说,将 l1 的第 n 个元素与 l2 的第 n 个元素相加

实现它的一种方法是:

我只是想知道是否可以通过 Applicative 实现它。我试过了 :

但它提供了所有组合:

任何想法?

谢谢

贝努瓦

0 投票
2 回答
580 浏览

scala - 在更复杂的计算中使用 scalaz 状态

我试图了解如何使用 scalazState执行复杂的有状态计算。这是问题所在:

给定 aList[Int]个潜在除数和 aList[Int]个数字,找到一个List[(Int, Int)] 匹配对 (divisor, number),其中一个除数最多可以匹配一个数字。

作为测试:

并使用以下输入:

我们最多可以得到 3 场比赛。如果我们规定匹配必须按照它们遍历列表 lr 的顺序进行,那么匹配必须是:

所以需要通过以下两个测试:

这是一个必要的解决方案:

请注意,我必须更新remaining以及 accumulating的状态matches。这听起来像是 scalaz traverse 的工作!

我无用的工作让我走到了这一步:

0 投票
1 回答
676 浏览

scala - Scalaz 验证:聚合错误或返回任何成功

如何用 scalaz 实现这样的行为:

我的解决方案看起来很复杂,我想存在其他一些简洁的方法:

======================

我的第二个解决方案:

像这样使用它:

0 投票
1 回答
482 浏览

scala - Scalaz iteratee,为 BufferedReader 创建 Enumerator

如何为 BufferedReader 创建 Enumerator?

我发现了相当老的文章:http : //apocalisp.wordpress.com/2010/10/17/scalaz-tutorial-enumeration-based-io-with-iteratees/ 看起来它不适用于Scalaz 6.0.4

我尝试根据此处的示例创建 Enumerator:Idiomatic construction to check if a collection is ordered

但我不明白如何将 IO monad 与 Enumerator 结合起来

0 投票
2 回答
1397 浏览

validation - 如何使用 scalaz 将函数组合到应用程序

在学习Scalaz 6时,我正在尝试编写返回验证的类型安全阅读器。这是我的新类型:

我有两个函数为整数和字符串(*)创建地图阅读器:

给定以下地图:

我可以写两个读者来检索姓名和年龄:

一切正常,但现在我想组合两个读者来构建一个Boy实例:

我最好的看法是:

它按预期工作,但是对于两个级别的应用程序构建器来说,表达方式很尴尬。有没有办法让以下语法起作用?

(*) 完整且可运行的实现:https ://gist.github.com/1891147


更新:这是我在尝试上述行或 Daniel 建议时收到的编译器错误消息:

0 投票
5 回答
4563 浏览

scala - 编写 Scalaz 验证

我想使用 Scalaz 进行验证,并且希望能够在不同的上下文中重用验证函数。顺便说一句,我对 Scalaz 完全陌生。

假设我有这些简单的检查:

我希望能够编写验证,其中一个的输出被馈送到另一个。我可以很容易地用flatMap理解或通过理解来做到这一点,但感觉肯定有比这更好的方法。

或者

Scalaz 专家有什么想法吗?