@code{(require 'srfi-1)}
@ftindex srfi-1

@noindent
Implements the @dfn{SRFI-1} @dfn{list-processing library} as described
@cindex SRFI-1
@cindex list-processing library
at @url{http://srfi.schemers.org/srfi-1/srfi-1.html}

@subheading Constructors


@defun xcons d a
@code{(define (xcons d a) (cons a d))}.
@end defun

@defun list-tabulate len proc
Returns a list of length @var{len}.  Element @var{i} is @code{(@var{proc}
@var{i})} for 0 <= @var{i} < @var{len}.
@end defun

@defun cons* obj1 obj2

@end defun

@defun iota count start step


@defunx iota count start

@defunx iota count
Returns a list of @var{count} numbers: (@var{start}, @var{start}+@var{step}, @dots{},  @var{start}+(@var{count}-1)*@var{step}).
@end defun

@defun circular-list obj1 obj2 @dots{}

Returns a circular list of @var{obj1}, @var{obj2}, @dots{}.
@end defun
@subheading Predicates


@defun proper-list? obj

@end defun

@defun circular-list? x

@end defun

@defun dotted-list? obj

@end defun

@defun null-list? obj

@end defun

@defun not-pair? obj

@end defun

@defun list= =pred list @dots{}

@end defun
@subheading Selectors


@defun first pair
@defunx fifth obj
@defunx sixth obj
@defunx seventh obj
@defunx eighth obj
@defunx ninth obj
@defunx tenth obj

@end defun

@defun car+cdr pair

@end defun

@defun take lst k
@defunx drop lst k

@end defun

@defun take-right lst k

@end defun

@defun split-at lst k

@end defun

@defun last lst

(car (last-pair lst))
@end defun
@subheading Miscellaneous


@defun length+ obj

@end defun

@defun concatenate lists
@defunx concatenate! lists

@end defun

@defun reverse! lst

@end defun

@defun append-reverse rev-head tail
@defunx append-reverse! rev-head tail

@end defun

@defun zip list1 list2 @dots{}

@end defun

@defun unzip1 lst
@defunx unzip2 lst
@defunx unzip3 lst
@defunx unzip4 lst
@defunx unzip5 lst

@end defun

@defun count pred list1 list2 @dots{}

@end defun
@subheading Fold and Unfold

@subheading Filtering and Partitioning

@subheading Searching


@defun find pred list

@end defun

@defun find-tail pred list

@end defun

@defun member obj list pred


@defunx member obj list

@code{member} returns the first sublist of @var{list} whose car is @var{obj}, where the sublists
of @var{list} are the non-empty lists returned by @t{(list-tail @var{list} @var{k})}
for @var{k} less than the length of @var{list}.  If @var{obj} does not occur in @var{list},
then @t{#f} (not the empty list) is returned.  The procedure @var{pred} is
used for testing equality.  If @var{pred} is not provided, @samp{equal?} is
used.
@end defun
@subheading Deleting

@subheading Association lists


@defun assoc obj alist pred


@defunx assoc obj alist

@var{alist} (for ``association list'') must be a list of pairs.  These
procedures find the first pair in @var{alist} whose car field is @var{obj}, and
returns that pair.  If no pair in @var{alist} has @var{obj} as its car, then @t{#f}
(not the empty list) is returned.  The procedure @var{pred} is used for
testing equality.  If @var{pred} is not provided, @samp{equal?} is used.
@end defun
@subheading Set operations
