获取函数和值的函数的名称以及将函数应用于值后的返回值

时间:2018-02-28 23:42:32

标签: javascript functional-programming lambda-calculus

我很好奇Lambda Calculus中是否有这个函数的特定名称

const whatsMyName = f => a => { f(a); return a }

另外,这是正确的签名吗?

// (f -> a -> b) -> a -> a

实施例

const trace = whatsMyName(console.log)

谢谢!

- 编辑:

这只是S(K)或替换(常数)。我能够解决这个问题,一个更精细的答案和良好的参考:

Functional programming construct for composing identity and side effect

具体答案

https://stackoverflow.com/a/46120634/1560484

感谢@ftor发表评论!

1 个答案:

答案 0 :(得分:0)

我想出了如何从其他组合器构造它。可能没有特殊名称,它只是从K(常数)和S(替换)派生而来。

 const K = x => y => x
 const S = f => g => x => f(x)(g(x));
 const whatsMyName = S(K)
 const trace = whatsMyName(console.log)

编辑:

@ftor的评论指出了一个更完整的答案:

Functional programming construct for composing identity and side effect