【发布时间】:2013-11-04 17:38:00
【问题描述】:
我正在尝试在 Common Lisp 中编写一个函数,以递归方式将基数为 10 的数字转换为基数为 8 的数字,以列表的形式表示。
这是我目前所拥有的:
(defun base8(n)
(cond
((zerop (truncate n 8)) (cons n nil))
((t) (cons (mod n 8) (base8 (truncate n 8))))))
当我输入数字 -8 时,这个函数可以正常工作,但是递归的情况给我带来了很多麻烦。当我尝试将 8 作为参数(应该返回 (1 0))时,我收到错误 Undefined operator T in form (T)。
提前致谢。
【问题讨论】:
标签: lisp decimal common-lisp octal