问题标签 [either]

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 回答
212 浏览

haskell - 是否有“纯粹适用的 Either”的标准名称或实现?

我经常发现我称之为“纯应用Either”的东西,即只要我们不实现实例,实例就可Either用。ApplicativeMonad

它非常有用Applicative,因为它提供了比Either'sMonad实例更强大的“错误总结”概念。为此,我发现自己一遍又一遍地实施它。

某处有标准实例吗?有没有标准的名字?

0 投票
2 回答
1266 浏览

scala - Scala 中的 Monad Transformer 堆栈

我正在学习 Scala 中的 monad 转换器,但我遇到了一个我认为目前无法解决的问题。在我的 monad 转换器堆栈中,我组成了 Either 和 State monad。但是,我没有调用属于两个单子之一的函数:

失败并显示以下错误消息:

如果我将 monad 变压器堆栈更改为:

该程序编译并运行没有问题。有人知道我在这里做错了什么吗?

0 投票
1 回答
354 浏览

json - Argonaut.io:如何重命名 Right/Left 的 json 属性,以防万一包含 Either

在 Argonaut 中,如何在案例类包含 Either 的情况下轻松重命名相应的 JSON 属性名称。

例如,给定这个定义:

将 a 转换FooBar为类似 JSON 的FooBar(Right(Bar("hello"))).asJson.spaces4结果如下:

在上面的输出中将“Right”重命名为更有意义的最简单方法是什么?(我的实际场景有很多案例类,其中有很多,所以我正在寻找最简洁的方法。)

0 投票
2 回答
1053 浏览

haskell - 使用 EitherT 累积错误

我有以下 Web API 的小型小型示例应用程序,该应用程序需要一个巨大的 JSON 文档,并且应该将其解析为片段并报告每个片段的错误消息。

以下代码是使用 EitherT(和 errors 包)的工作示例。然而,问题是 EitherT 中断了第一个 Left 遇到的计算,只返回它看到的第一个“错误”。我想要的是一个错误消息列表,所有这些都是可能产生的。例如,如果第一行runEitherT失败,那么就没有什么可以做的了。但是如果第二行失败,那么我们仍然可以尝试运行后续行,因为它们对第二行没有数据依赖。因此,理论上我们可以一次性产生更多(不一定是全部)错误消息。

是否可以懒惰地运行所有计算并返回我们能找到的所有错误消息?

如果有人有一些重构建议,也可以接受。

0 投票
5 回答
1075 浏览

scala - 如何将引发异常的函数转换为返回 Either 的函数?

假设我有一些引发异常的函数。我将它们包装好返回Either[Throwable, <function return type>]。(假设我需要Either而不是Try)。

现在我想编写一个通用包装器来摆脱 bolierpllate 代码。你有什么建议?

0 投票
2 回答
180 浏览

scala - 从一个序列中投影一个序列的“左”?

(警告 - 我是一个 scala noob)给定一个序列Eithers,即

我正在尝试通过使用地图来提取所有错误left(s)

然而,这返回

而不是Seq[ErrorResponse]我希望的那样。

请让我摆脱痛苦?

0 投票
2 回答
1794 浏览

haskell - Haskell 中的纯错误处理与 Either:如何折叠错误可能性?

我主要对Eithermonad 和它的所有 uilitites 感兴趣Control.Error。阅读errors-1.0:简化的错误处理,我确信应该将纯错误与IO 错误分开。这意味着error,failexitFailure应简化为 IO monad 的函数。纯计算可以并且将会产生条件错误,但是是确定性的。

目前,在使用folds时,我遇到了一种情况,数组中的元素可能会产生条件错误,从而使整个计算无法满足。例如(使用Data.ConfigFile):

情况是:我正在使用具有复杂类型的 acc,只是因为如果没有找到单个元素进行替换,那么整个值是不可计算的。

我的问题是:这丑吗?有没有更好的方法来做到这一点?由于一些 IO 检查,EitherT CPError IO String我有一些更糟糕的实用程序类型。acc

0 投票
1 回答
84 浏览

haskell - 编译打印时出错

我正在尝试编译简单的代码片段。

编译导致以下错误:

当我从 ghci 执行相同的代码段时,一切都按预期工作。

所以问题是发生了什么?

0 投票
4 回答
6004 浏览

haskell - Haskell - 也许是

我真的不知道该怎么办。我知道可能是什么,但我认为这两者都有问题,因为Either a a在我看来这毫无意义。Either a b会好的。Either a a这是 a 或 b 但是a?!

我一般不知道如何编写这些函数。

0 投票
4 回答
193 浏览

scala - 在scala中将Eithers列表更改为两个值列表

如何将 Eithers 列表更改为左右两个值列表。当我使用partition它时,它会返回两个非值的列表。最简单的方法是什么?