1(module srfi-214 ()
2 (import scheme)
3 (import (only (chicken base)
4 case-lambda
5 define-record-type
6 error
7 include
8 let-values
9 unless
10 when)
11 (only (chicken module) export)
12 (srfi 1)
13 (only (srfi 133)
14 vector-copy
15 vector-copy!
16 vector-fill!
17 string->vector
18 vector->string)
19 (srfi 145))
20
21 (export ; Constructors
22 make-flexvector flexvector
23 flexvector-unfold flexvector-unfold-right
24 flexvector-copy flexvector-reverse-copy
25 flexvector-append flexvector-concatenate flexvector-append-subvectors
26
27 ; Predicates
28 flexvector? flexvector-empty? flexvector=?
29
30 ; Selectors
31 flexvector-ref flexvector-front flexvector-back flexvector-length
32
33 ; Mutators
34 flexvector-add! flexvector-add-front! flexvector-add-back!
35 flexvector-remove! flexvector-remove-front! flexvector-remove-back!
36 flexvector-add-all! flexvector-remove-range! flexvector-clear!
37 flexvector-set! flexvector-swap!
38 flexvector-fill! flexvector-reverse!
39 flexvector-copy! flexvector-reverse-copy!
40 flexvector-append!
41
42 ; Iteration
43 flexvector-fold flexvector-fold-right
44 flexvector-map flexvector-map! flexvector-map/index flexvector-map/index!
45 flexvector-append-map flexvector-append-map/index
46 flexvector-filter flexvector-filter! flexvector-filter/index flexvector-filter/index!
47 flexvector-for-each flexvector-for-each/index
48 flexvector-count flexvector-cumulate
49
50 ; Searching
51 flexvector-index flexvector-index-right
52 flexvector-skip flexvector-skip-right
53 flexvector-binary-search
54 flexvector-any flexvector-every flexvector-partition
55
56 ; Conversion
57 flexvector->vector flexvector->list flexvector->string
58 vector->flexvector list->flexvector string->flexvector
59 reverse-flexvector->list reverse-list->flexvector
60 generator->flexvector flexvector->generator)
61
62 (include "implementation/flexvectors-body1.scm")
63 (include "implementation/flexvectors-body2.scm"))