Lisp将元素插入子列表

时间:2015-04-12 17:11:18

标签: list lisp sublist

定义一个函数intoSublist,它带有两个输入参数x - atom和L - list以及子列表。该函数应将x作为L的所有子列表中的第一个元素插入。

(defun intoSublist (x L)
  (cond
((null L) nil)
 ((not(atom (car L)))
 (cons x (intoSublist x
L)))


(t (cons (car L) (intoSublist x
(cdr L ))))
 )
)

程序给程序堆栈溢出。重置错误。我认为功能是正确的,但我不知道问题是什么?

1 个答案:

答案 0 :(得分:1)

(not (atom (car L))为真时,你无限次地利用第一个元素。也许你忘了cdr这个论点?

此外,不是在列表前添加,而是替换它。