|
|
1
35
是的,但只是粗略地说。在“纯”非类型化lambda微积分中,所有东西都被编码为函数。(你可以在谷歌上搜索流行的“教堂编码”和不太流行的“斯科特编码”。)Lisp有非功能数据,比如原子和数字等,所以这可以算作“非类型化lambda微积分用常量扩展”。 另一个重要区别是 估价顺序 . 减少lambda微积分项的规则是高度不确定性的。(有一个定理,即Church-Rosser定理,它松散地说,只要事物终止,评价顺序就不重要。)实际上,lambda术语通常使用最左边的最外面的,也就是“正常顺序”的约简,因为如果 任何 减缩策略终止了。 这与Lisp非常不同,Lisp总是在进行beta缩减之前将参数评估为正常形式。此评估顺序称为“按值调用”。 总之,lisp对应于 用常量扩展的非类型化、按值调用的lambda微积分 . |
|
|
2
3
约翰·麦卡锡介绍了Lisp his April, 1960 paper "Recursive Functions of Symbolic Expressions and Their Computation by Machine, Part I" . 以下段落摘自第6页:
这个 Wikipedia article on lambda-calculus 有教会出版物的历史。麦卡锡引用的1941年的论文似乎是关于 类型化的 lambda微积分,与维基百科文章的引言相矛盾。
这个
|
|
|
3
-4
Lisp不是“lambda演算”,我不知道“lambda演算”是什么。 如果您想通过there类型系统识别lambda计算,那么lisp当然是它自己的。任何Lisp中的“lambda”关键字在scheme之前都是自命不凡的,而在scheme之后也有说不出的余地。使用“func”会更谦虚。Lisp主要是列表处理器,而不是“lambda演算” 我还写了一篇关于这一点的相当广泛的文章,试图说明为什么a:术语“函数式编程”毫无意义,b:为什么说“lambda微积分”而不是“类型系统”也是如此: http://blog.nihilarchitect.net/archives/289/on-functional-programming/ 另外,请记住,在Lisp中,所有函数都有效 单一论证 只能拥有 列表 作为他们的论点。 |
|
|
Some · lambda演算中的列表元素和列表长度 8 年前 |
|
|
xuange · java8中的“流”是如何工作的? 8 年前 |
|
|
Eben Kadile · 在Haskell中如何解析撇号/字符文字? 8 年前 |
|
|
Andremoniy · Java 8 lambda和alpha等价 8 年前 |
|
|
softshipper · 溶解λ微积分 9 年前 |