我无法绕过我能达到的方法,以使下面的代码点免费。以下工作,但需要看似不必要的中间状态变量。
import { pipe, curryN, __, prop } from 'Ramda'
import ns from 'ns'
// For the sake of this, let's say `ns.foo` is just `console.log`
// (it can take any number of args)
const bar = pipe(
prop('foo'),
curryN(3),
(x) => x(__, 'b', __),
Promise.promisify, // or something
)(ns)
bar('a', 'c')
// => 'a b c'
答案 0 :(得分:1)
将(x) => x(__, 'b', __)
转换为无点形式的一种方法是使用R.apply
的翻转实例,部分应用参数列表。
R.flip(R.apply)([R.__, 'b'])
但是,与原始匿名函数相比,我觉得这开始失去可读性,因此在寻找无点解决方案时请始终牢记这一点。
答案 1 :(得分:0)
也许我只是感到困惑,但这看起来像一个简单的curry
foo
左右:
const foo = curry(function(a, b, c) {
console.log(a, b, c)
})
const bar = foo(__, 'b')