【发布时间】:2013-11-29 17:19:14
【问题描述】:
这是我到目前为止所做的,它告诉我它不是列表类型。
(defun number_list(n)
(setf x
(if (zerop (truncate n 10))
(list n)
(append (number_list (truncate n 10)) (list (mod n 10)))))
(length x))
当我删除 (length x) 时,我可以看到结果是一个列表。
不胜感激。
【问题讨论】:
-
您的代码的一个问题是使用
(length x),结果不再是列表。有关解决方案:请参阅 uselpa 的答案。 -
您可能也对这个问题感兴趣:stackoverflow.com/questions/19892507 除此之外,使用返回整数位数的
integer-length可以大大加快算法速度。但如果您只对fixnum感兴趣,那么最好使用表格(max-positive-fixnum总共有 19 位数字)。
标签: recursion common-lisp