我刚刚开始学习Common Lisp,我正在尝试构建一个将数字插入树中的函数.我收到一个错误,
*** - SYSTEM ::%EXPAND-FORM :( CONS NIL LST)应该是lambda表达式
从谷歌搜索,似乎这种情况发生在你有太多的括号集,但看了一个小时左右,并改变了周围的事情,我无法弄清楚我可以做到这一点.
这是它发生的代码:
(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)))))))
Run Code Online (Sandbox Code Playgroud)
我很确定它发生在((等于(长度为lst)2)之后,其中的想法是在现有列表中插入一个空列表,然后在末尾附加一个空列表,然后在中间插入一个空列表.