diff options
Diffstat (limited to 'srfi-1.txi')
-rw-r--r-- | srfi-1.txi | 178 |
1 files changed, 178 insertions, 0 deletions
diff --git a/srfi-1.txi b/srfi-1.txi new file mode 100644 index 0000000..a27fcc1 --- /dev/null +++ b/srfi-1.txi @@ -0,0 +1,178 @@ +@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 |