我开始学习 LISP,我听说有一种技巧可以在不使用标签的情况下进行递归(仅使用:quote、atom、eq、car、cdr、cons、cond)。
我想了想,但我想不出这样做的方法,因为我定义的函数没有名字。
我猜它是使用 cond 完成的,我真的不明白如何......
[问题是如何实现具有上述限制的递归]
最佳答案
对于匿名递归,您将需要一个定点组合器,其中最著名的是 Y 组合器。 Richard Gabriel's "Why of Y"是一篇在 Scheme 中推导和证明 Y 的好文章。
关于不使用标签的 LISP 递归,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9021404/