8. Übung (15-jan-98)
(defvar a 42) (defun hmmh (a &optional b &rest c &key (d a) (e 'a) (f :a)) ...)
Schreibe Deine eigene mapcar()-Funktion. Als Argumente soll sie eine Funktion und ine Liste nehmen (also (defun mapcar2 (fn liste) ...)).
(a (b c) d)
in den folgenden Repräsentationen dar:
cons()
(mehrfach), die Symbole a
bis
d
und die leere Liste nil
verwendet;
(cons a nil)
entspricht
dem dotted pair (a . nil)
sowohl als der Liste
(a)
.
(defun remove3 (element list) (do ((foo (rest list) __________) (result (if ____________________________ nil (list (first list))) (if (equal (first foo) element) result _________________________))) (__________ (reverse result))))
Erweitere die Funktion in Übung 2 so, daß eine beliebige Anzahl von Listen zugelassen wird; benutze nicht die vordefinierten Map-Funktionen. Hint: (defun mapcar3 (fn list &rest lists) ...).