find-if

Der Aufruf (find-if p l) liefert das erste Element der Liste l, auf das das Prädikat p zutrifft.

> (find-if number? (quote (ah be 3 de)))
3

> (find-if number? (quote (ah be ce)))
nil

> (find-if number? nil)
nil


Die Funktion find-if nutzt aus, dass die Funktion member-if? eine Liste mit einem passenden Element an deren Anfang zurück gibt, wenn es so ein Element gibt. Außerdem basiert sie auf and und first:

(setq find-if
  (lambda (p l)
    (let
      ((m (member-if? p l)))
      (and m (first m)))))