Returns the first element in list for which predicate is true; returns
#fif it doesn't find such an element. (This means that if predicate is true for#f, it may be impossible to distinguish a successful result from an unsuccessful one.) Predicate must be a procedure of one argument.For compatibility,
list-search-positiveis an alias forfind-matching-item.list-search-negativeis similar but the sense of the predicate is reversed.
These procedures return the first pair of list whose car is object; the returned pair is always one from which list is composed. If object does not occur in list,
#f(n.b.: not the empty list) is returned.memquseseq?to compare object with the elements of list, whilememvuseseqv?andmemberusesequal?.1(memq 'a '(a b c)) => (a b c) (memq 'b '(a b c)) => (b c) (memq 'a '(b c d)) => #f (memq (list 'a) '(b (a) c)) => #f (member (list 'a) '(b (a) c)) => ((a) c) (memq 101 '(100 101 102)) => unspecified (memv 101 '(100 101 102)) => (101 102)
Returns a procedure similar to
memq, except that predicate, which must be an equivalence predicate, is used instead ofeq?. This could be used to definememvas follows:(define memv (member-procedure eqv?))
[1] Although
they are often used as predicates, memq, memv, and
member do not have question marks in their names because they
return useful values rather than just #t or #f.