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

问题描述 投票:0回答:1

我很好奇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的评论!

javascript functional-programming lambda-calculus
1个回答
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

© www.soinside.com 2019 - 2024. All rights reserved.