lambda - 用 α 减少的 lambda 演算减少
问题描述
我正在尝试完成 lambda 演算减少,但我无法在某个点后继续。我必须减少“二二”的值,其中“二 = λfx.f (fx)”
我开始写以下内容:
(λfx.f (f x) two) = λx.two (two x)
= λa.two(λfx.f(f x) a)
= two(λx.a(a x))
= (λfx.f (f x) (λx.a(a x)))
在那一步之后,我开始变得非常困惑,我不知道如何继续。我是否必须将第二个 lambda 项应用于第f
一个 lambda 项的变量?我试过了,但没有结果。
解决方案
让2 := λfx.f (f x)
,注意
2 a = λx.a (a x) (i)
(2 a) b = a (a b) (ii)
因此
2 2
= λx.2 (2 x) by (i), a = 2
= λxy.(2 x) ((2 x) y) by (i), a = (2 x)
= λxy.(2 x) (x (x y)) by (ii)
= λxy.x (x (x (x y))) by (ii)
= λfx.f (f (f (f x)))
=: 4
推荐阅读
- sorting - 日期格式为“2017 年 1 月”在图表上的排序不正确
- python - 如何在scrapy中执行请求postrequest
- apache-poi - 如何使用selenium java创建新工作表并在现有excel中写入一些数据
- firebase - 如何在多个 Firestore 实例之间创建事务/批量写入?
- python - 如何将传输语法 uid 添加到数据集的文件元中
- angular - Angular 2 - Textarea 消毒?
- java - 在 selenium java 中的选项卡之间切换时浏览器窗口最小化
- jenkins - 仅针对第一次失败提交的 Jenkins 电子邮件通知
- javascript - SVG 不适合浏览器窗口,窗口底部的白条
- python - Compute Engine:URLFetch 在此环境中不可用