The abstraction `locatex' difers from `locate' only by returning the element found in the list instead of `true' if it was found.
(define locate (lambda(pred l) (if (nullp l) false (if (pred (car l)) true (locate pred (cdr l)))))) ; (define locatex (lambda(pred l) (if (nullp l) false (if (pred (car l)) (car l) (locatex pred (cdr l)))))) |
(define l1 (cons one (cons two (cons three (cons four nil))))) ; (bdisp! (locate (lambda(x) (equaln x two)) l1)) --> true (bdisp! (locate (lambda(x) (equaln x five)) l1)) --> false |
Georg P. Loczewski 2004-03-05