我有兩個元素和一個列表。我必須在第一個元素之前插入第二個元素,每次出現第一個元素時,都會在給定列表的第一個級別中插入第二個元素。在Element2之前插入Element1
遞歸版本:
(defun INSERT-ELEM (E1 E2 L)
(cond ((null L) NIL)
((equal E1 (car L)) (cons E2 (INSERT-ELEM E1 E2 (cdr L))))
((equal E2 (car L)) (cons E1 (INSERT-ELEM E1 E2 (cdr L))))
(t (cons (car L) (INSERT-ELEM E1 E2 (cdr L))))))
但什麼是錯的,它改變E1前面的地方,而不是插入E2。 有人可以幫我嗎?
乞討的線((等於E2)做相反的插入,它把'E1'放在E2之前。 – Barmar
@Barmar是什麼?我不明白。 –