summary refs log tree commit diff
path: root/implementation/flexvectors.sld
diff options
context:
space:
mode:
authorArthur A. Gleckler <srfi@speechcode.com>2021-01-13 20:53:35 -0800
committerGitHub <noreply@github.com>2021-01-13 20:53:35 -0800
commit9cebcba5ca8ee47d74a2efc96c8111ddf98f3b6e (patch)
treef7dc6ed6637092740b43a37cbc3aae1be75417b4 /implementation/flexvectors.sld
parent7eb8ddca6a0df8acd138d140afd52cb630f9c9f9 (diff)
parentcde743ee1148f89d9299b444244d0a5ba8856e13 (diff)
downloadsrfi-214-9cebcba5ca8ee47d74a2efc96c8111ddf98f3b6e.tar.gz
srfi-214-9cebcba5ca8ee47d74a2efc96c8111ddf98f3b6e.tar.xz
srfi-214-9cebcba5ca8ee47d74a2efc96c8111ddf98f3b6e.zip
Merge pull request #1 from ar-nelson/add-source
Add implementation source for next draft
Diffstat (limited to 'implementation/flexvectors.sld')
-rw-r--r--implementation/flexvectors.sld50
1 files changed, 50 insertions, 0 deletions
diff --git a/implementation/flexvectors.sld b/implementation/flexvectors.sld
new file mode 100644
index 0000000..25e1543
--- /dev/null
+++ b/implementation/flexvectors.sld
@@ -0,0 +1,50 @@
+(define-library (flexvectors)
+  (export ; Constructors
+          make-flexvector flexvector
+          flexvector-unfold flexvector-unfold-right
+          flexvector-copy flexvector-reverse-copy
+          flexvector-append flexvector-concatenate flexvector-append-subvectors
+
+          ; Predicates
+          flexvector? flexvector-empty? flexvector=?
+
+          ; Selectors
+          flexvector-ref flexvector-front flexvector-back flexvector-length
+
+          ; Mutators
+          flexvector-add! flexvector-add-front! flexvector-add-back!
+          flexvector-remove! flexvector-remove-front! flexvector-remove-back!
+          flexvector-add-all! flexvector-remove-range! flexvector-clear!
+          flexvector-set! flexvector-swap!
+          flexvector-fill! flexvector-reverse!
+          flexvector-copy! flexvector-reverse-copy!
+          flexvector-append!
+
+          ; Iteration
+          flexvector-fold flexvector-fold-right
+          flexvector-map flexvector-map! flexvector-map/index flexvector-map/index!
+          flexvector-append-map flexvector-append-map/index
+          flexvector-filter flexvector-filter! flexvector-filter/index flexvector-filter/index!
+          flexvector-for-each flexvector-for-each/index
+          flexvector-count flexvector-cumulate
+
+          ; Searching
+          flexvector-index flexvector-index-right
+          flexvector-skip flexvector-skip-right
+          flexvector-binary-search
+          flexvector-any flexvector-every flexvector-partition
+
+          ; Conversion
+          flexvector->vector flexvector->list flexvector->string
+          vector->flexvector list->flexvector string->flexvector
+          reverse-flexvector->list reverse-list->flexvector
+          generator->flexvector)
+
+  (import (scheme base)
+          (scheme case-lambda)
+          (scheme write)
+          (srfi 1)
+          (srfi 145))
+
+  (include "flexvectors-body1.scm")
+  (include "flexvectors-body2.scm"))