7.4.13.1 SRFI-1 ¶
(require 'srfi-1)
Implements the SRFI-1 list-processing library as described
at http://srfi.schemers.org/srfi-1/srfi-1.html
Constructors ¶
- Function: xcons d a ¶
-
(define (xcons d a) (cons a d))
.
- Function: list-tabulate len proc ¶
-
Returns a list of length len. Element i is
(proc i)
for 0 <= i < len.
- Function: cons* obj1 obj2 ¶
- Function: list-copy flist ¶
- Function: iota count start step ¶
- Function: iota count start ¶
- Function: iota count ¶
Returns a list of count numbers: (start, start+step, …, start+(count-1)*step).
- Function: circular-list obj1 obj2 … ¶
-
Returns a circular list of obj1, obj2, ….
Predicates ¶
- Function: proper-list? obj ¶
- Function: circular-list? x ¶
- Function: dotted-list? obj ¶
- Function: null-list? obj ¶
- Function: not-pair? obj ¶
- Function: list= =pred list … ¶
Selectors ¶
- Function: first pair ¶
- Function: second pair ¶
- Function: third pair ¶
- Function: fourth pair ¶
- Function: fifth pair ¶
- Function: sixth pair ¶
- Function: seventh pair ¶
- Function: eighth pair ¶
- Function: ninth pair ¶
- Function: tenth pair ¶
- Function: car+cdr pair ¶
- Function: drop lst k ¶
- Function: take lst k ¶
- Function: take! lst k ¶
- Function: take-right lst k ¶
- Function: drop-right lst k ¶
- Procedure: drop-right! lst k ¶
- Function: split-at lst k ¶
- Function: split-at! lst k ¶
- Function: last lst k … ¶
Miscellaneous ¶
- Function: length+ clist ¶
- Function: concatenate lists ¶
- Function: concatenate! lists ¶
- Procedure: reverse! lst ¶
- Function: append-reverse rev-head tail ¶
- Function: append-reverse! rev-head tail ¶
- Function: zip list1 list2 … ¶
- Function: unzip1 lst ¶
- Function: unzip2 lst ¶
- Function: unzip3 lst ¶
- Function: unzip4 lst ¶
- Function: unzip5 lst ¶
- Function: count pred list1 list2 … ¶
Fold and Unfold ¶
- Function: fold kons knil clist1 clist2 … ¶
- Function: fold-right kons knil clist1 clist2 … ¶
- Function: pair-fold kons knil clist1 clist2 … ¶
- Function: pair-fold-right kons knil clist1 clist2 … ¶
- Function: reduce arg … ¶
- Procedure: map! f clist1 clist2 … ¶
- Function: pair-for-each f clist1 clist2 … ¶
Filtering and Partitioning ¶
- Function: filter pred list ¶
- Procedure: filter! pred list ¶
- Function: partition pred list ¶
- Function: remove pred list ¶
- Procedure: partition! pred list ¶
- Procedure: remove! pred list ¶
Searching ¶
- Function: find pred clist ¶
- Function: find-tail pred clist ¶
- Function: span pred list ¶
- Procedure: span! pred list ¶
- Function: break pred list ¶
- Procedure: break! pred list ¶
- Function: any pred clist1 clist2 … ¶
- Function: list-index pred clist1 clist2 … ¶
- Function: member obj list = ¶
- Function: member obj list ¶
Deleting ¶
- Function: delete-duplicates x list = ¶
- Function: delete-duplicates x list ¶
- Procedure: delete-duplicates! x list = ¶
- Procedure: delete-duplicates! x list ¶
Association lists ¶
- Function: assoc obj alist pred ¶
- Function: assoc obj alist ¶
- Function: alist-cons key datum alist ¶
- Function: alist-copy alist ¶
- Function: alist-delete key alist = ¶
- Function: alist-delete key alist ¶
- Procedure: alist-delete! key alist = ¶
- Procedure: alist-delete! key alist ¶
Set operations ¶
- Function: lset<= = list1 … ¶
-
Determine if a transitive subset relation exists between the lists list1
…, using = to determine equality of list members.
- Function: lset= = list1 list2 … ¶
- Function: lset-adjoin list elt1 … ¶
- Function: lset-union = list1 … ¶
- Function: lset-intersection = list1 list2 … ¶
- Function: lset-difference = list1 list2 … ¶
- Function: lset-xor = list1 … ¶
- Function: lset-diff+intersection = list1 list2 … ¶
These are linear-update variants. They are allowed, but not
required, to use the cons cells in their first list parameter to
construct their answer. lset-union!
is permitted to recycle
cons cells from any of its list arguments.
- Procedure: lset-intersection! = list1 list2 … ¶
- Procedure: lset-difference! = list1 list2 … ¶
- Procedure: lset-union! = list1 … ¶
- Procedure: lset-xor! = list1 … ¶
- Procedure: lset-diff+intersection! = list1 list2 … ¶