我很好奇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发表评论!
答案 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