gpt4 book ai didi

functional-programming - 将任一 数组转换为任一(Scalaz 中的序列函数)

转载 作者:行者123 更新时间:2023-12-03 14:00:58 26 4
gpt4 key购买 nike

我仍在学习和使用 fp-ts 并且无法弄清楚这一点。

我有一个数组 Either<any, number>[]我想得到一个 Either<any, number[]> .

我看过Apply.sequenceT和示例 sequenceToOption ,它看起来很接近。

import { NumberFromString } from 'io-ts-types/lib/NumberFromString'
import { Either } from 'fp-ts/lib/Either'

const a:Either<any,number>[] = ['1','2','3'].map(NumberFromString.decode)

console.log(a)
// [ { _tag: 'Right', right: 1 },
// { _tag: 'Right', right: 2 },
// { _tag: 'Right', right: 3 } ]

我想要一个错误或数字数组。

最佳答案

来自 Array<Either<L, A>>Either<L, Array<A>>您可以使用 sequence :

import { array } from 'fp-ts/lib/Array'
import { either } from 'fp-ts/lib/Either'

array.sequence(either)(arrayOfEithers)

您的示例还可以使用 traverse 进一步简化

array.traverse(either)(['1','2','3'], NumberFromString.decode)

关于functional-programming - 将任一<E,A> 数组转换为任一<E,A[]>(Scalaz 中的序列函数),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57916714/

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