使用 Ramda 的函数组合

Function composition using Ramda

我有 2 个函数和 1 个变量,它们组合后的形式为

const value = f(g(x))(x)

也就是说,f(g(x)) returns 函数再次采用 x。我不喜欢这种冗余,它阻止我声明我的函数 pointfree。

我需要什么 Ramda 函数才能将其转换为 R.something(f, g)(x)?

这是一个工作示例,可在 http://ramdajs.com/repl/?v=0.24.1

中测试
const triple = x => x * 3
const conc = x => y => x + " & " + y

const x = 10

conc(triple(x))(x)

// I'm looking for R.something(conc, triple)(x)

你可以创建一个函数结果

const triple = x => x * 3
const conc = x => y => x + " & " + y

let result = (a, b) => e => a(b(e))(e)

const x = 10

console.log(conc(triple(x))(x));

// I'm looking for R.something(conc, triple)(x)

console.log(result(conc, triple)(x));

您可以使用R.chain

const something = chain(conc, triple)

您可以在 Ramda repl.

上看到实际效果