1
A
回答
1
自由变量是Lambda微积分中的一个特殊情况 - 它们不能被“转换”为任何东西,所以通常它们只被视为符号。显然
mk_app(mk_app(mk_app(mk_sym("x"),
mk_lam("x",
mk_lam("y",
mk_app(mk_var("x"),
mk_var("y"))))),
mk_sym("z")),
mk_sym("h"));
,您可以使用mk_var()
那些:在你的榜样,并给出了lambda表达式一些虚构的构造函数,你把它翻译为以下(包括对付隐钻营)C类的表达符号也是如此,但这会误导,因为它们不是真正的变量,因为它们没有绑定。换句话说,如果你对表达式进行了任何alpha转换,他们将不得不保持不变。
(顺便说一下,这里的相关部分是Barendregt的自由变量假设。)
4
转换演算为C代码是不平凡的。通常你会写一个解释器,逐步评估。也就是说,将表达式转换为树,并找到最接近根节点的节点,该节点是左侧为lambda的应用程序。现在替换在右侧。重复,直到你不能再申请,并且你有结果。
请注意,这里没有直接等价于自由变量;我们只是用它们来知道在哪里取代东西。
请记住,图灵等价不需要精确两个图灵完备语言中的任何概念之间的等价性。它只是要求你能够与另一个模拟一个,反之亦然。
相关问题
- 1. Lambda微积分表达式测试台?
- 2. Lambda微积分减少/评估表达式
- 3. lambda微积分xor表达式通过真假
- 4. 斯卡拉lambda微积分
- 5. Lambda微积分帮助
- 6. Lambda微积分的减少
- 7. 在lambda微积分中,如果将表达式应用于非函数表达式会怎样?
- 8. Lambda微积分的Beta缩减
- 9. 在lambda微积分值中调用
- 10. 在Lambda微积分中推测类型
- 11. Lambda微积分免费可变问题
- 12. 非递推lambda微积分函数
- 13. Haskell - Lambda微积分等效语法?
- 14. Lambda微积分函数的减少
- 15. 实践中的Lambda微积分
- 16. Lambda微积分:适用于斯卡拉
- 17. lambda微积分中的Eta抽象
- 18. Lambda微积分与CLISP中的实现
- 19. CLISP Lambda微积分Div执行
- 20. Pure Lambda微积分 - 和函数
- 21. Lambda微积分运算符优先级
- 22. 正则表达式验证的集成式(微积分)
- 23. Lambda表达式
- 24. Lambda表达式
- 25. Lambda表达式
- 26. Lambda表达式
- 27. Lambda表达式
- 28. Lambda表达式
- 29. Lambda表达式
- 30. Lambda表达式