Lisp中实现匿名递归函数
主流的 Lisp 实现(Common Lisp、Guile、Emacs Lisp 等) 中默认都没提供定义匿名的递归函数的方法。 不过 Lisp 一个特色就是你可以自己动手添加需要的语言特性! 于是我就尝试着自己写一个宏来实现这个功能。
主流的 Lisp 实现(Common Lisp、Guile、Emacs Lisp 等) 中默认都没提供定义匿名的递归函数的方法。 不过 Lisp 一个特色就是你可以自己动手添加需要的语言特性! 于是我就尝试着自己写一个宏来实现这个功能。
Clojure中Lambda支持递归,所以我要在Common Lisp中也实现这样的功能!
Y组合子是Lambda演算的一部分,也是函数式编程的理论基础。 它是一种方法/技巧,在没有赋值语句的前提下定义递归的匿名函数。 即仅仅通过Lambda表达式这个最基本的“原子”实现循环/迭代。 颇有道生一、一生二、二生三、三生万物的感觉。
© 2012-2014 张泽鹏 <redraiment@gmail.com> - 子清行 - zzp.me