gpt4 book ai didi

haskell - 报告所有错误的类序列函数

转载 作者:行者123 更新时间:2023-12-04 11:15:36 27 4
gpt4 key购买 nike

我正在标准库中寻找一个签名与此类似的函数:

Traversable f => f (Either e a) -> Either [e] (f a)
或者可能是这样的:
(Traversable f, Monoid e) => f (Either e a) -> Either e (f a)
这个想法是在遇到第一个错误时收集错误而不是失败。
我看到我的函数看起来很像 sequence我希望已经有一个类型类可以模拟这种模式。

最佳答案

您可以使用 Validation 数据类型。从文档中:

[A] Validation is either a value of the type err or a, similar to Either. However, the Applicative instance for Validation accumulates errors using a Semigroup on err. In contrast, the Applicative for Either returns only the first error.


例如。:
> sequenceA [Failure [1], Success "Test", Failure [2] :: Validation [Int] String]
Failure [1, 2]

关于haskell - 报告所有错误的类序列函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67937556/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com