Typescript fp ts:如何组合多个期权生产者?

Typescript fp ts:如何组合多个期权生产者?,typescript,fp-ts,Typescript,Fp Ts,我正在寻找具有以下行为的fp ts函数: function compute1(arg: number): Option<number>; function compute2(arg: number): Option<number>; function compute3(arg: number): Option<number>; function compute(arg: number): Option<number> { const firs

我正在寻找具有以下行为的
fp ts
函数:

function compute1(arg: number): Option<number>;
function compute2(arg: number): Option<number>;
function compute3(arg: number): Option<number>;

function compute(arg: number): Option<number> {
  const first = compute1(arg)
  if (isSome(first)) return first

  const second = compute2(arg)
  if (isSome(second)) return second

  const third = compute3(arg)
  if (isSome(third)) return third

  return none
}

// For example I am looking for this `or` function:
const compute = or([
  compute1,
  compute2,
  compute3,
])
函数compute1(arg:number):选项;
函数compute2(arg:number):选项;
函数compute3(arg:number):选项;
函数计算(arg:number):选项{
const first=compute1(arg)
如果(isSome(first))首先返回
常数秒=计算2(arg)
如果(isSome(second))返回second
const third=compute3(arg)
如果(是某些(第三个))返回第三个
一无所获
}
//例如,我正在寻找这个`或`函数:
常数计算=或([
计算机1,
计算2,
计算3,
])

我找不到相应的函数。

我想您正在选项库中查找
getLastMonoid
。这将为您提供最右边的
部分
值,如下表所示:

x Y concat(x,y) 没有一个 没有一个 没有一个 一些(a) 没有一个 一些(a) 没有一个 一些(a) 一些(a) 一些(a) 部分(b) 部分(b)