ant*_*iom 1 javascript functional-programming ramda.js fantasyland sanctuary
假设您有以下代码:
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);
Run Code Online (Sandbox Code Playgroud)
addOne与func1or结合起来func2相对容易:
const res = R.compose(
S.map(addOne),
func1
)();
Run Code Online (Sandbox Code Playgroud)
但是如何add使用func1andfunc2作为参数进行调用呢?
ps 我知道 ramda 提供了一个add函数。将该示例视为现实世界问题的抽象。
您可能正在寻找该lift2功能:
const addEithers = S.lift2(add)
console.log(addEithers(func1())(func2()))
Run Code Online (Sandbox Code Playgroud)
或者,您可以使用ap:
S.ap(S.map(add)(func1()))(func2())
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
130 次 |
| 最近记录: |