我要编写一个 lisp 程序来生成十六进制数的实际值。我已经编写了一个函数,但似乎遇到了 stackoverflow (deep) 错误。我想知道是否有人可以指出我的错误或指导我正确的方向。
如果没有为这个问题发布代码,我将不胜感激,因为这是家庭作业的一部分。因此,我只想要一个可能出错的解释或方向。
我觉得我的问题是我的递归没有终止,但我不知道如何解决它。
这是我的代码:
(defun calc (hex)
(if hex
(if (> (length hex) 1)
( + (first (reverse hex)) (* 16 (calc (reverse hex)))) hex)))
提前致谢。