问题标签 [vavr]

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 投票
2 回答
517 浏览

java - 将一个范围划分为 x 个范围

我一直在为此头疼

我想创建一个区间列表(作为 Tuple2 实例),其范围min介于.maxnumberOfIntervals

这个特定的项目在 java 中(不允许使用 scala),所以我使用的是 vavr,但我可以将任何 scala 解决方案转换为 vavr

这是我的解决方案:

这有效:

但这会创建很长的中介列表。我也一直在玩这样的东西:

但是最后一个范围大于最大值:

0 投票
3 回答
509 浏览

java - 将一系列 void 函数应用于单个值的函数式编程习惯用法

给定一个值foo和一个StreamvoidConsumer<Foo>函数,将每个函数应用于该值的最简洁方法是什么?现在我有

这并不可怕,但我怀疑可能有某种方法可以把它翻过来,只用方法引用(没有明确的 lambda)来做。可能是单例列表和zip()

我会对直接的 Java 8 答案或Vavr或 Scala 感到满意。

(请注意,这不是折叠,或者至少不是通常的foldLeft/foldRight应用程序;如果有返回值,我会丢弃它们,而不是迭代它们。)

0 投票
1 回答
434 浏览

java - 在 Java 8 lambda 中使用本地 Vavr 不可变集合

鉴于下面的代码片段,我将如何使用 Vavr 不可变列表或流?我不能作为局部变量,因为无法将其标记为最终变量。我不想晋升List<CurvePoint> points为班员。

0 投票
2 回答
2777 浏览

java - io.vavr.control.Validation 在这些示例中是如何工作的?

我在理解验证库时遇到了一些麻烦,io.vavr.control.Validation . 冒着提出过于宽泛的问题的风险,我确实有几个子问题——但我相信它们密切相关,并且会拼凑起来帮助我理解使用这种验证机制的正确方法。

我从这里的示例开始:https ://softwaremill.com/javaslang-data-validation 。

起初,我不明白泛型参数的Validation<String, ValidRegistrationRequest>来源。我现在明白它们分别与传递给mapError和的方法的返回类型相关联ap。但:

  1. 怎么combine知道返回Validation<String, ValidRegistrationRequest>?我觉得这是可能的唯一方法,是 ifcombine实际上是 a Validation<String, ValidRegistrationRequest>::combine,所以apandmapError是从这个模板定义的。但我不相信编译器应该能够暗示这combine指的是返回类型类中的静态实现。这里发生了什么事?

  2. [次要] 使用 aValidRegistrationRequest而不是 just RegistrationRequestagain 的用例是什么?我很想在我的编码中做后者,直到我看到一个例子。

我正在阅读的第二个示例在这里:http ://www.vavr.io/vavr-docs/#_validation 。

  1. 是从哪里来Seq的?mapError当没有提供时,这是默认值吗?但我正在查看 Validation.class 的反编译 .class 文件,唯一的参考Seq是这里:

    哪个,我认为不相关。也许我使用的是过时的Validation?(毕竟是javaslang.control.Validation在我的导入中,而不是io.vavr.control.Validation。)

  2. 我对这两个例子都有这个问题:如何combine知道将哪些参数传递给构造函数(ap),以及以什么顺序?答案是“所有它的参数,按给定的顺序”吗?

提前致谢。

0 投票
4 回答
1033 浏览

java - 减少其中一个状态引发异常的简洁方法

我有一堆这样的:

以下是他们的一些方法:

现在,我试图这样做:

有一个明显的问题是,如果只有一个aorb是错误的,那么就有一个不必要的;. 但是还有一个更严重的问题:getError()如果验证有效则抛出异常。

有没有办法我可以编写这个 lambda(或在io.vavr.control.Validation 库中使用其他东西)而不使所有 4 种情况(a && b, a && !b, !a && b, !a && !b)都明确?


编辑

为了更清楚,我想要一个最终的结果Validation<String, Foo>。我认为它以这种方式表现得像一个“monad”,但我不确定。

0 投票
1 回答
267 浏览

java-8 - Vavr 属性测试

最新的Vavr 文档中宣传了属性检查功能以及以下使用示例:

但是,根据库的javadocArbitrary生成器和Property类型都不存在。

我错过了什么,如果有的话?文档是最新的吗?

0 投票
1 回答
161 浏览

java-8 - vavr 中的流生成器​​方法

Vavr 文档中有以下示例:

但是,我在vavr javadoc中的 Stream 类型上找不到上述方法(gen)。

这些似乎是相似的行为:

但也有Stream.gen()地方吗?

我是在错误的地方搜索还是 vavr 用户指南中提到的过时方法?

0 投票
1 回答
865 浏览

java-8 - 在 Vavr 中执行副作用

我正在阅读Vavr 使用指南的部分,该部分是关于使用 Match 和他们所说的其他“语法糖”执行副作用的。这是那里给出的示例:

然后讨论如何run不应该在 lambda body 之外运行,等等。

恕我直言,解释中缺少一些东西来让我完全清楚,即run某个 Vavr 接口上的现有方法(我找不到)还是应该是我自己在周围代码库中的方法?

所以我努力拼写出上面的例子,只是为了让我可以运行并查看它的结果:

有人可以确认我在 Vavr 的设计师所设想的功能方面处于正确的轨道上,还是我完全偏离了切线,在这种情况下,我希望得到一些关于它应该如何的指导。

先感谢您。

更新:

0 投票
1 回答
78 浏览

java-8 - Vavr 中的命名参数功能

Vavr 用户指南named parameters在讨论其功能时参考了以下代码:

命名参数

Vavr 利用 lambdas 为匹配值提供命名参数。

有人可以详细说明命名参数在哪里起作用以及它们是如何使用的吗?先感谢您。

0 投票
1 回答
210 浏览

eclipse - Vavr 源 jar 缺少类

当试图在Vavr中查找某些类的实现时,例如Patterns.java,它的所有内部类,即Patterns.$SuccessEclipse 拒绝打开它们,因为它们不包含在源 jar 中(vavr-0.9.2-sources .jar)从 Maven 中心下载。

在此处输入图像描述

我在哪里可以得到一个完整来源的罐子?