intersection
Die Schnittmenge zweier Mengen kann mit intersection bestimmt werden.
> (intersection (quote (c d)) (quote (a b c))))
(c)
Die Funktion verwendet cond, null?, member?, cons, first und rest.
(setq intersection
(lambda (u v)
(cond
((null? u) nil)
((member? (first u) v)
(cons (first u) (intersection (rest u) v)))
((intersection (rest u) v)))))
> (intersection (quote (c d)) (quote (a b c))))
(c)
Die Funktion verwendet cond, null?, member?, cons, first und rest.
(setq intersection
(lambda (u v)
(cond
((null? u) nil)
((member? (first u) v)
(cons (first u) (intersection (rest u) v)))
((intersection (rest u) v)))))