Я пытаюсь написать функцию в 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, но рекурсивный случай доставляет мне много хлопот. Когда я пытаюсь использовать 8 в качестве аргумента (который должен возвращать (1 0)
), я получаю сообщение об ошибке Undefined operator T in form (T)
.
Заранее спасибо.