Я только начал изучать Common Lisp несколько дней назад, и я пытаюсь создать функцию, которая вставляет число в дерево. Я получаю сообщение об ошибке,
*** - СИСТЕМА ::% EXPAND-FORM: (CONS NIL LST) должно быть лямбда-выражением
Из-за того, что вы гуглили, кажется, что это происходит, когда у вас слишком много наборов скобок, но, посмотрев на это в течение часа или около того и изменив ситуацию, я не могу понять, где я мог бы это делать. 1007 *
Это код, где это происходит:
(defun insert (lst probe)
(cond ((null lst) (cons probe lst))
((equal (length lst) 1)
(if (<= probe (first lst))
(cons probe lst)
(append lst (list probe))))
((equal (length lst) 2)
((cons nil lst) (append lst nil) (insertat nil lst 3)
(cond ((<= probe (second lst)) (insert (first lst) probe))
((> probe (fourth lst)) (insert (fifth lst) probe))
(t (insert (third lst) probe)))))))
Я почти уверен, что это происходит после ((равно (длина lst) 2), где идея состоит в том, чтобы вставить пустой список в существующий список, затем добавить пустой список в конец, а затем вставить пустой список в середину.