不使用标签的 LISP 递归

标签 recursion lisp

我开始学习 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/

相关文章:

python - 当Python对象触发彼此更新时如何停止无限递归?

c++ - 递归设置的 n 个元素的 k 元组组合

list - 有没有办法就地提取列表的所有元素

recursion - 如何在 OpenAPI/Swagger 中指定递归路径

haskell - 非纯函数式语言 OCaml 出现 'let rec' 的原因是什么?

haskell - 用于生成编程的非 C++ 语言?

recursion - 将 Y-Combinator 应用于 Clojure 中具有两个参数的递归函数?

lisp - elisp有没有高精度的对数计算器?

java - 使用递归将数组最小值的伪代码转换为 Java 代码

list - 如何制作一个新列表指向其他地方,Lisp