问题标签 [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.
java - 将一个范围划分为 x 个范围
我一直在为此头疼
我想创建一个区间列表(作为 Tuple2 实例),其范围min
介于.max
numberOfIntervals
这个特定的项目在 java 中(不允许使用 scala),所以我使用的是 vavr,但我可以将任何 scala 解决方案转换为 vavr
这是我的解决方案:
这有效:
但这会创建很长的中介列表。我也一直在玩这样的东西:
但是最后一个范围大于最大值:
java - 将一系列 void 函数应用于单个值的函数式编程习惯用法
给定一个值foo
和一个Stream
voidConsumer<Foo>
函数,将每个函数应用于该值的最简洁方法是什么?现在我有
这并不可怕,但我怀疑可能有某种方法可以把它翻过来,只用方法引用(没有明确的 lambda)来做。可能是单例列表和zip()
?
我会对直接的 Java 8 答案或Vavr或 Scala 感到满意。
(请注意,这不是折叠,或者至少不是通常的foldLeft
/foldRight
应用程序;如果有返回值,我会丢弃它们,而不是迭代它们。)
java - 在 Java 8 lambda 中使用本地 Vavr 不可变集合
鉴于下面的代码片段,我将如何使用 Vavr 不可变列表或流?我不能作为局部变量,因为无法将其标记为最终变量。我不想晋升List<CurvePoint> points
为班员。
java - io.vavr.control.Validation 在这些示例中是如何工作的?
我在理解验证库时遇到了一些麻烦,io.vavr.control.Validation
. 冒着提出过于宽泛的问题的风险,我确实有几个子问题——但我相信它们密切相关,并且会拼凑起来帮助我理解使用这种验证机制的正确方法。
我从这里的示例开始:https ://softwaremill.com/javaslang-data-validation 。
起初,我不明白泛型参数的Validation<String, ValidRegistrationRequest>
来源。我现在明白它们分别与传递给mapError
和的方法的返回类型相关联ap
。但:
怎么
combine
知道返回Validation<String, ValidRegistrationRequest>
?我觉得这是可能的唯一方法,是 ifcombine
实际上是 aValidation<String, ValidRegistrationRequest>::combine
,所以ap
andmapError
是从这个模板定义的。但我不相信编译器应该能够暗示这combine
指的是返回类型类中的静态实现。这里发生了什么事?[次要] 使用 a
ValidRegistrationRequest
而不是 justRegistrationRequest
again 的用例是什么?我很想在我的编码中做后者,直到我看到一个例子。
我正在阅读的第二个示例在这里:http ://www.vavr.io/vavr-docs/#_validation 。
是从哪里来
Seq
的?mapError
当没有提供时,这是默认值吗?但我正在查看 Validation.class 的反编译 .class 文件,唯一的参考Seq
是这里:哪个,我认为不相关。也许我使用的是过时的
Validation
?(毕竟是javaslang.control.Validation
在我的导入中,而不是io.vavr.control.Validation
。)我对这两个例子都有这个问题:如何
combine
知道将哪些参数传递给构造函数(ap
),以及以什么顺序?答案是“所有它的参数,按给定的顺序”吗?
提前致谢。
java - 减少其中一个状态引发异常的简洁方法
我有一堆这样的:
以下是他们的一些方法:
现在,我试图这样做:
有一个明显的问题是,如果只有一个a
orb
是错误的,那么就有一个不必要的;
. 但是还有一个更严重的问题:getError()
如果验证有效则抛出异常。
有没有办法我可以编写这个 lambda(或在io.vavr.control.Validation 库中使用其他东西)而不使所有 4 种情况(a && b
, a && !b
, !a && b
, !a && !b
)都明确?
编辑
为了更清楚,我想要一个最终的结果Validation<String, Foo>
。我认为它以这种方式表现得像一个“monad”,但我不确定。
java-8 - vavr 中的流生成器方法
Vavr 文档中有以下示例:
但是,我在vavr javadoc中的 Stream 类型上找不到上述方法(gen)。
这些似乎是相似的行为:
但也有Stream.gen()
地方吗?
我是在错误的地方搜索还是 vavr 用户指南中提到的过时方法?
java-8 - 在 Vavr 中执行副作用
我正在阅读Vavr 使用指南的部分,该部分是关于使用 Match 和他们所说的其他“语法糖”执行副作用的。这是那里给出的示例:
然后讨论如何run
不应该在 lambda body 之外运行,等等。
恕我直言,解释中缺少一些东西来让我完全清楚,即run
某个 Vavr 接口上的现有方法(我找不到)还是应该是我自己在周围代码库中的方法?
所以我努力拼写出上面的例子,只是为了让我可以运行并查看它的结果:
有人可以确认我在 Vavr 的设计师所设想的功能方面处于正确的轨道上,还是我完全偏离了切线,在这种情况下,我希望得到一些关于它应该如何的指导。
先感谢您。
更新:
java-8 - Vavr 中的命名参数功能
Vavr 用户指南named parameters
在讨论其功能时参考了以下代码:
命名参数
Vavr 利用 lambdas 为匹配值提供命名参数。
有人可以详细说明命名参数在哪里起作用以及它们是如何使用的吗?先感谢您。
eclipse - Vavr 源 jar 缺少类
当试图在Vavr中查找某些类的实现时,例如Patterns.java
,它的所有内部类,即Patterns.$Success
Eclipse 拒绝打开它们,因为它们不包含在源 jar 中(vavr-0.9.2-sources .jar)从 Maven 中心下载。
我在哪里可以得到一个完整来源的罐子?