问题标签 [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.
haskell - 是否有“纯粹适用的 Either”的标准名称或实现?
我经常发现我称之为“纯应用Either
”的东西,即只要我们不实现实例,实例就可Either
用。Applicative
Monad
它非常有用Applicative
,因为它提供了比Either
'sMonad
实例更强大的“错误总结”概念。为此,我发现自己一遍又一遍地实施它。
某处有标准实例吗?有没有标准的名字?
scala - Scala 中的 Monad Transformer 堆栈
我正在学习 Scala 中的 monad 转换器,但我遇到了一个我认为目前无法解决的问题。在我的 monad 转换器堆栈中,我组成了 Either 和 State monad。但是,我没有调用属于两个单子之一的函数:
失败并显示以下错误消息:
如果我将 monad 变压器堆栈更改为:
该程序编译并运行没有问题。有人知道我在这里做错了什么吗?
json - Argonaut.io:如何重命名 Right/Left 的 json 属性,以防万一包含 Either
在 Argonaut 中,如何在案例类包含 Either 的情况下轻松重命名相应的 JSON 属性名称。
例如,给定这个定义:
将 a 转换FooBar
为类似 JSON 的FooBar(Right(Bar("hello"))).asJson.spaces4
结果如下:
在上面的输出中将“Right”重命名为更有意义的最简单方法是什么?(我的实际场景有很多案例类,其中有很多,所以我正在寻找最简洁的方法。)
haskell - 使用 EitherT 累积错误
我有以下 Web API 的小型小型示例应用程序,该应用程序需要一个巨大的 JSON 文档,并且应该将其解析为片段并报告每个片段的错误消息。
以下代码是使用 EitherT(和 errors 包)的工作示例。然而,问题是 EitherT 中断了第一个 Left 遇到的计算,只返回它看到的第一个“错误”。我想要的是一个错误消息列表,所有这些都是可能产生的。例如,如果第一行runEitherT
失败,那么就没有什么可以做的了。但是如果第二行失败,那么我们仍然可以尝试运行后续行,因为它们对第二行没有数据依赖。因此,理论上我们可以一次性产生更多(不一定是全部)错误消息。
是否可以懒惰地运行所有计算并返回我们能找到的所有错误消息?
如果有人有一些重构建议,也可以接受。
scala - 如何将引发异常的函数转换为返回 Either 的函数?
假设我有一些引发异常的函数。我将它们包装好返回Either[Throwable, <function return type>]
。(假设我需要Either
而不是Try
)。
现在我想编写一个通用包装器来摆脱 bolierpllate 代码。你有什么建议?
scala - 从一个序列中投影一个序列的“左”?
(警告 - 我是一个 scala noob)给定一个序列Eithers
,即
我正在尝试通过使用地图来提取所有错误left(s)
然而,这返回
而不是Seq[ErrorResponse]
我希望的那样。
请让我摆脱痛苦?
haskell - Haskell 中的纯错误处理与 Either:如何折叠错误可能性?
我主要对Either
monad 和它的所有 uilitites 感兴趣Control.Error
。阅读errors-1.0:简化的错误处理,我确信应该将纯错误与IO 错误分开。这意味着error
,fail
是exitFailure
应简化为 IO monad 的函数。纯计算可以并且将会产生条件错误,但是是确定性的。
目前,在使用folds时,我遇到了一种情况,数组中的元素可能会产生条件错误,从而使整个计算无法满足。例如(使用Data.ConfigFile):
情况是:我正在使用具有复杂类型的 acc,只是因为如果没有找到单个元素进行替换,那么整个值是不可计算的。
我的问题是:这丑吗?有没有更好的方法来做到这一点?由于一些 IO 检查,EitherT CPError IO String
我有一些更糟糕的实用程序类型。acc
haskell - 编译打印时出错
我正在尝试编译简单的代码片段。
编译导致以下错误:
当我从 ghci 执行相同的代码段时,一切都按预期工作。
所以问题是发生了什么?
haskell - Haskell - 也许是
我真的不知道该怎么办。我知道可能是什么,但我认为这两者都有问题,因为Either a a
在我看来这毫无意义。Either a b
会好的。Either a a
这是 a 或 b 但是a
?!
我一般不知道如何编写这些函数。
scala - 在scala中将Eithers列表更改为两个值列表
如何将 Eithers 列表更改为左右两个值列表。当我使用partition
它时,它会返回两个非值的列表。最简单的方法是什么?