【发布时间】:2021-01-30 00:52:11
【问题描述】:
在this 对let 的处理中,给出了let 的lambda 演算版本
(\f.z)(\x.y)
用词
f由f x = y定义在表达式中z,然后为
let f x = y in z
我从初学者的角度知道 Haskell 的 let 是如何工作的,即定义遵循 let 和表达式(对这些定义做一些事情)遵循 in。
let <definitions> in <expression>
但是这个最一般的 lambda 演算描述令人费解。例如,我假设可能有 let f x = y in z 的 Haskell lambda 函数版本。有人可以在 Haskell 中写出这个——或许可以举一两个例子吗?只是猜测,似乎第一个 lambda 函数需要第二个 lambda 函数——不知何故?
(\x -> y)(\f -> z)
但这只是猜测。
【问题讨论】:
标签: haskell let lambda-calculus