srfi-214

Fork of the SRFI-214 reference implementation for CHICKEN

git clone https://git.8pit.net/srfi-214.git

 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"))