关于 elisp-速学笔记中尾递归 myreverse 的答案
Hi JanSky520,
首先,感谢你提供的宝贵学习资料!
有一个小问题想要和你探讨一下,就是 elisp-速学笔记中尾递归 myreverse 的[答案](https://github.com/JanSky520/emacs_Chinese/blob/670fabf632bb8980f27074a8cf6a53c221a5e156/elisp/elisp-%E9%80%9F%E5%AD%A6%E7%AC%94%E8%AE%B0.org?plain=1#L422),我认为这个答案并不是真正的尾递归,因为在函数的最后一行,`test1` 的递归调用返回后,还需要再执行 `append` 函数,递归调用不在函数尾部。下面这个才是尾递归。
```elisp
(defun test1-tail (ls &optional acc)
(cond
((null ls) acc)
(t (test1-tail (cdr ls) (cons (car ls) acc)))))
```
你觉得呢?
关闭于 2025-10-22 2 条评论