find - search a list for an element satisfying a predicate
LIBRARY
(import (rnrs)) ;R6RS
(import (rnrs lists)) ;R6RS
SYNOPSIS
(find proc list)
DESCRIPTION
The find procedure applies
proc
to the elements of
list
in order. If
proc
returns a true value for an element, find immediately returns that
element. If
proc
returns
#f
for all elements of the list, find returns
#f.
Proc
is always called in the same dynamic environment as find itself.
Proc
should accept one argument and return a single value.
Proc
should not mutate
list.
IMPLEMENTATION NOTES
The implementation must check that
list
is a chain of pairs up to the found element, or that it is indeed a
list if no element is found. It should not check that it is a chain of
pairs beyond the found element. The implementation must check the
restrictions on
proc
to the extent performed by applying it as described. An implementation
may check whether
proc
is an appropriate argument before applying it.
RETURN VALUES
Returns a single value which is either one of the elements of
list
or
#f.
EXAMPLES
(find even? '(3 1 4 1 5 9)) => 4
(find even? '(3 1 5 1 5 9)) => #f
ERRORS
This procedure can raise exceptions with the following condition types:
- &assertion (R6RS)
-
The wrong number of arguments was passed or an argument was outside its domain.
SEE ALSO
member(3scm)
STANDARDS
R6RS,
SRFI-1
HISTORY
This procedure is new in R6RS, which got it from SRFI-1.
AUTHORS
This page is part of the
scheme-manpages
project.
It includes materials from the RnRS documents.
More information can be found at
https://github.com/schemedoc/manpages/
.
Markup created by unroff 1.0sc, March 04, 2023.