【发布时间】:2011-02-04 06:31:25
【问题描述】:
几天前我刚开始学习 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)))))))
我很确定它发生在 ((equal (length lst) 2) 之后,其想法是在现有列表中插入一个空列表,然后在末尾附加一个空列表,然后插入一个空列表到中间。
【问题讨论】:
标签: syntax-error lisp common-lisp