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)))))
> (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)))))