【发布时间】:2016-12-17 06:05:44
【问题描述】:
来自我最近读的一本书:
第一:
????????.(????????.????????.????)(????)((????????.????)????)
最外层的 lambda 绑定???在这一点上是不可约的,因为它没有适用的论据。剩下的就是一次一层地进入这些术语,直到我们找到可简化的东西。
下一步:
????????.(????????.????)((????????.????)????)
我们可以应用 lambda 绑定 ????论据????。我们一直在寻找可以应用的条款。我们可以应用的下一件事是 lambda 绑定 ????到 lambda 项 ((????????.????)????)。
我不明白。在第一部分,它说 ???????? 没有适用的参数,我大概可以理解,但是在下一部分,我认为 z 可以绑定到 ((????????.????)????) 因为如您所见,@987654327 @,???????? 的主体显然有一个可以绑定的z 参数。但本书只是忽略了头部????????,直接将n绑定到((????????.????)????)。我的意思是????????.???? 没有n 参数,为什么会被绑定?
有人可以向我解释一下吗?
【问题讨论】:
-
太棒了。我很高兴不知道 Unicode 数学字母数字符号;现在我将不得不使用它们。
-
@chepner 哦,天哪,您看不到这些符号吗?直到我刚才在手机上查看了这个问题,我才意识到这一点。
-
不,是我可以看到它们,我很惊讶在代码块中看到斜体文本,我不得不将它们整理出来。它们很难打字,但它们看起来如此正确。 :)
-
我认为您要解决的是严格评估的 lambda 演算(您的缩减步骤)和惰性评估的 lambda 演算(本书的缩减步骤)之间的区别。
-
@chepner 但是 Unicode 在我的 iPhone 上不起作用。也许你不应该对它太着迷哈哈。
标签: haskell lambda functional-programming lambda-calculus