首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Lambda还原

Lambda还原
EN

Stack Overflow用户
提问于 2020-07-29 10:40:01
回答 1查看 77关注 0票数 0

我很难理解如何将lambda术语简化为正常形式。有人能帮助我理解如何减少这个lambda的表达吗?我不知道该从哪里开始。

(λx. (λa. (λx x a)) x) 20 (λx. x+3)

提前谢谢你

EN

回答 1

Stack Overflow用户

发布于 2020-08-02 01:29:23

我只关注你的表情。要获得更深层次的解释,您可以阅读this question的答案。

首先,让我们考虑如何在这些表达式上解释方括号。请考虑以下表达式:

代码语言:javascript
复制
(λx. x*x) 5 => 5*5 => 25

因此,对这个表达式的计算是用方括号外的值5替换x。

现在,让我们在表达式中从左到右放置一些括号:

代码语言:javascript
复制
(((λx. ( λa. (λx. x a)) x) 20) (λx. x+3))

让我们调用(λa. (λX.xa))变量z作为简化。所以,我们会有:

代码语言:javascript
复制
(((λx. z x) 20) (λx. x+3))

这个表达式现在类似于我们的第一个例子。用值20代替x,我们将有:

代码语言:javascript
复制
((z 20) (λx. x+3))

这与以下相同:

代码语言:javascript
复制
(((λa. (λx. x a)) 20) (λx. x+3))

再一次,我们可以用20来代替

代码语言:javascript
复制
((λx. x 20) (λx. x+3))

之后,我们可以将左边的x替换为右侧的整个表达式(λx.λ)。

代码语言:javascript
复制
((λx. x+3) 20)

最后,我们可以用20代替x

代码语言:javascript
复制
((λx. x+3) 20) => 20+3 = 23
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63151770

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档