-1
所以我昨天開始學習Lisp並開始做一些問題。Lisp返回值
我很難做的事情是插入/刪除列表中的原子,同時保持列表相同前:(delete 'b '(g a (b) l))
將給我(g a() l)
。
另外我遇到麻煩的是這個問題。 我想檢查列表中是否有原子存在的位置。
我追蹤到它,它表示它在一個點返回T
,但隨後被覆蓋nil
。
你們能幫忙嗎?
我使用
在第四屆函數調用返回T
但隨後變得nil
。
(defun appear-anywhere (a l)
(cond
((null l) nil)
((atom (car l))
(cond
((equal (car l) a) T)
(T (appear-anywhere a (cdr l)))))
(T (appear-anywhere a (car l))(appear-anywhere a (cdr l)))))
請注意,Common Lisp中有一個'delete'函數。它沒有上述行爲。如果你定義了你自己的函數delete,那麼這個行爲就不再被Common Lisp標準所定義,並且基本上取決於Lisp在這種情況下的行爲。當然,你可以製作自己的符號包(一種名稱空間),它有一個'delete'符號,與'cl:delete'無關。 – Kaz