zip-with

Der Aufruf (zip-with fn l r) liefert eine Liste, deren Elemente aus jeweils der Anwendung der Funktion fn auf ein Element von l und ein Element von r entstehen.

Die Funktion zip-with ist auf Basis von cond, null?, cons, first und rest definiert:

(setq zip-with
  (lambda (f l r)
    (cond
      ((null? l) nil)
      ((null? r) nil)
      ((cons
        (f (first l) (first r))
        (zip-with f (rest l) (rest r)))))))