Questions tagged «lambda-calculus»

λ演算是用于函数定义,函数应用和递归的形式系统,它构成函数编程的数学基础。

1
平面表达式的最简单完整组合器基础对
在克里斯·冈崎(Chris Okasaki)的论文“ 拼合组合器:没有括号的情况下生存 ”中,他表明,两个组合器既足以作为编码图灵完备表达式的基础,又不需要应用运算符或括号。 通过使用应用程序运算符对S和K组合器进行前缀编码,与John Trump在“ 二进制Lambda微积分和组合逻辑 ”中对组合逻辑的编码相比,只需要两个组合器来进行平面表达式,就可以将代码密度提高到最优。产生的Goedel编号将每个整数映射为有效的,格式正确的闭项表达式,这与大多数计算和最小描述长度的esolang不同,后者的规范表示通常允许描述语法无效的程序。 但是Okasaki的编码在从lambda演算项到位串的单向映射中是最有用的,而不一定是相反的,因为当用作实用的替换指令时,此归约中使用的两个组合器相对复杂。 什么是不需要应用程序运算符的最简单的完整组合器基础对?

1
组合逻辑项是否总是更大?
因此,存在一种使用SK组合器将lambda微积分项转换为组合逻辑的算法。它产生的东西会爆炸。我想进一步了解这种规模的爆炸。我似乎无法想到更好的算法。我听说功能语言实际上已经编译为组合器,因此似乎必须存在更好的算法。我查阅了大卫·特纳(David Turner)关于该主题的论文,他基本上只是说要应用一些优化,并且它们会带来“显着的改进”。 “显着改善”是否意味着大小下降到仅多项式增长?是否有一种已知的方法可以将lambda项转换为仅增加(或更少)多项式的组合逻辑?如果存在这样的算法是否可行?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.