All pastes #2075122 Raw Edit

Mine

public text v1 · immutable
#2075122 ·published 2011-06-05 16:22 UTC
rendered paste body

(defun both (ListA ListB newlist)		; Bildet die Schnittmenge 2er Listen
    (message "%S %S" (car ListA) newlist)
    (if (member (car ListA) ListB)		; Wenn das erste Element von ListA in ListB ist
	(if (member (car ListA) newlist)	; Wenn das erste Element von ListA in newlist ist
	    ()					; Mache nichts
            (push (car ListA) newlist)		; Schreibe das erste Element von ListA in newlist
	)
    )
    (pop ListA)					; Verwirf das erste Element von ListA
    (if (eq (= 0 (length ListA)) nil)		; Wenn ListA nicht leer ist
	(both ListA ListB newlist)		; Rekursiver Aufruf
    )
    (reverse newlist)				; newlist umdrehen
)


(message"Liste A: %S" (setq ListA '(1 2 3 4)) )		; Beispielliste A
(message"Liste B: %S" (setq ListB '(2 4 8 16)) )	; Beispielliste B
(setq newlist ())					; leere Liste

(setq newlist ())					; leere Liste
(message "%S" (both ListA ListB newlist))		; Rufe both (ListeA ListeB newlist) auf und gib ihr letztes Argument zurück