首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Lambda微积分:按值调用/按名称调用(懒惰)

Lambda微积分:按值调用/按名称调用(懒惰)
EN

Software Engineering用户
提问于 2016-04-05 17:14:14
回答 2查看 3.6K关注 0票数 0

很难根据价值/名字来决定该适用哪种规则。说我有:

代码语言:javascript
复制
(λz.zz)(λb.b)

而我想根据价值评估,下一步会是吗?

代码语言:javascript
复制
(λz.z)(λb.b)

(计算左-z在z上的应用),或

代码语言:javascript
复制
(λz.(λb.b)(λb.b))

(先评估右侧)

那么,人们如何称呼他们的名字呢?

EN

回答 2

Software Engineering用户

回答已采纳

发布于 2016-04-05 17:25:28

你想申请

代码语言:javascript
复制
(λz.zz)

对论点

代码语言:javascript
复制
(λb.b)
  • 通过值方式调用:将参数简化为正常形式,然后将参数z绑定到它
  • 按名称调用意味着:用未计算的参数替换函数正文中参数z的每个出现

由于z B.B已经处于正常状态,所以无论是按名称调用还是按值调用都没有区别:在这两种情况下,您最终都会用λb.b替换每次出现的λ,给出

代码语言:javascript
复制
(λb.b) (λb.b)
票数 6
EN

Software Engineering用户

发布于 2016-04-05 17:24:39

这两个步骤都不是正确的,在该术语中只有一个可还原表达式,因此在这两种情况下,唯一有效的步骤是(\b. b)(\b. b)。只有在应用lambda抽象时才允许执行缩减,而且只有一个地方可以这样做,即在最外层。

票数 1
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/314823

复制
相关文章

相似问题

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