2015-04-12 59 views
0

定義一個函數intoSublist,其中包含兩個輸入參數x - atom和L - 列表與子列表。該函數應該在x的所有子列表中插入x作爲第一個元素。Lisp將一個元素插入到子列表中

(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

(not (atom (car L))爲真時,表示第一個元素無限多次。也許你忘了cdr的說法?

此外,而不是添加在列表的前面,你正在取代它。

相關問題