我需要帮助从理论上理解我的代码。这是我的 lisp 程序:
(defun depth (lst)
(if (or (null lst) (atom lst)) 0
(+ 1 (apply 'max (mapcar #'depth lst)))
))
Run Code Online (Sandbox Code Playgroud)
我知道它适用于这个例子:
(write (depth '((a (b c) d r ((t))))) -> 3
Run Code Online (Sandbox Code Playgroud)
我只是无法理解我尝试过的语句的else语句IF。
如果您能帮助我,将不胜感激。先感谢您。