为了账号安全,请及时绑定邮箱和手机立即绑定

操作两个二选一

操作两个二选一

月关宝盒 2022-05-26 17:48:09
假设您有以下代码:import R from "ramda";import S from "sanctuary";import { Left, Right } from "sanctuary-either";const add = R.curry((p1, p2) => p1 + p2);const addOne = add(1);const func1 = () => Right(2);const func2 = () => Right(7);addOne与func1or结合func2比较容易:const res = R.compose(  S.map(addOne),  func1)(); 但是如何add使用func1andfunc2作为参数调用呢?ps 我知道 ramda 提供了一个add功能。将该示例视为对现实世界问题的抽象。
查看完整描述

1 回答

?
慕莱坞森

TA贡献1810条经验 获得超4个赞

您可能正在寻找以下lift2功能:


const addEithers = S.lift2(add)


console.log(addEithers(func1())(func2()))

或者,您可以使用ap:


S.ap(S.map(add)(func1()))(func2())


查看完整回答
反对 回复 2022-05-26
  • 1 回答
  • 0 关注
  • 97 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信