J'ai deux éléments et une liste. Je dois insérer le deuxième élément avant le premier élément, chaque fois que le premier élément apparaît, dans le premier niveau de la liste donnée.Insérer un élément1 avant un élément2
Version récursive:
(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))))))
Mais quelque chose ne va pas, il change des endroits au lieu d'insérer E2 devant E1. Quelqu'un pourrait m'aider?
La ligne qui mendie ins avec '((E2' égal fait l'insertion opposée, il met' E1' avant 'E2'. – Barmar
Qu'est-ce que @Barmar? Je n'ai pas compris. –