Common lisp-Fehler: "sollte lambda-Ausdruck"

Ich gerade angefangen zu lernen, Common Lisp vor ein paar Tagen, und ich bin versucht, zu erstellen eine Funktion, die fügt eine Zahl in einen Baum. Ich erhalte eine Fehlermeldung,

*** - SYSTEM::%ERWEITERN Sie-FORM: (CONS NIL LST) sollte ein lambda-Ausdruck

Vom googeln um, wie es scheint, das passiert, wenn man zu viele Sätze von Klammern, aber nach einem Blick auf diese für eine Stunde oder so und ändern die Dinge um, ich kann nicht herausfinden, wo ich sein könnte, dies zu tun.

Dies ist der code, wo es passiert:

(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)))))))

Ich bin mir ziemlich sicher, dass es die nach dem ((equal (length lst) 2), wo die Idee ist, legen Sie eine leere Liste in der vorhandenen Liste, dann fügen Sie eine leere Liste an das Ende, dann legen Sie eine leere Liste in der Mitte.

Schreibe einen Kommentar