gpt4 book ai didi

haskell - 从 [Either a b] 到 Either [a] [b] 的函数

转载 作者:行者123 更新时间:2023-12-02 21:36:59 27 4
gpt4 key购买 nike

函数的名称是否定义如下:

f :: [Either a b] -> Either [a] [b]
f x = let (y1, y2) = partitionEithers x in
case y1 of
[] -> Right y2
_ -> Left y1

基本上,如果列表至少包含 Left,它将返回所有 Left,否则返回所有 Right

或者,这个函数是否对我错过的类型类有一些概括?

最佳答案

这(几乎)是 Validation序列 ;您只需将 a 转换为 [a] 即可。所以:

traverse (eitherToValidation . first pure)

如果您重写生产者以生成 Validation,而不是 Either,那么噪音会更少。

关于haskell - 从 [Either a b] 到 Either [a] [b] 的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55912951/

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