From cc92ecf2bc95232ee49784feb314dfd456840056 Mon Sep 17 00:00:00 2001 From: Alex Shinn Date: Fri, 6 Oct 2017 23:53:22 +0900 Subject: [PATCH] adding (scheme red) and associated srfi aliases --- Makefile | 6 +- lib/scheme/box.sld | 4 + lib/scheme/charset.sld | 37 ++++ lib/scheme/comparator.sld | 25 +++ lib/scheme/ephemeron.sld | 5 + lib/scheme/generator.sld | 39 ++++ lib/scheme/hash-table.sld | 29 +++ lib/scheme/ilist.sld | 79 +++++++ lib/scheme/list-queue.sld | 11 + lib/scheme/list.sld | 21 ++ lib/scheme/red.sld | 422 ++++++++++++++++++++++++++++++++++++++ lib/scheme/sort.sld | 19 ++ lib/scheme/vector.sld | 36 ++++ 13 files changed, 732 insertions(+), 1 deletion(-) create mode 100644 lib/scheme/box.sld create mode 100644 lib/scheme/charset.sld create mode 100644 lib/scheme/comparator.sld create mode 100644 lib/scheme/ephemeron.sld create mode 100644 lib/scheme/generator.sld create mode 100644 lib/scheme/hash-table.sld create mode 100644 lib/scheme/ilist.sld create mode 100644 lib/scheme/list-queue.sld create mode 100644 lib/scheme/list.sld create mode 100644 lib/scheme/red.sld create mode 100644 lib/scheme/sort.sld create mode 100644 lib/scheme/vector.sld diff --git a/Makefile b/Makefile index fb53be9e..60c49539 100644 --- a/Makefile +++ b/Makefile @@ -48,7 +48,7 @@ MODULE_DOCS := app ast config disasm equiv filesystem generic heap-stats io \ system test time trace type-inference uri weak monad/environment \ show show/base crypto/sha2 -IMAGE_FILES = lib/chibi.img lib/snow.img +IMAGE_FILES = lib/chibi.img lib/red.img lib/snow.img HTML_LIBS = $(MODULE_DOCS:%=doc/lib/chibi/%.html) @@ -169,6 +169,9 @@ lib/chibi/ast$(SO): lib/chibi/ast.c $(INCLUDES) libchibi-scheme$(SO) lib/chibi.img: $(CHIBI_DEPENDENCIES) all-libs $(CHIBI) -d $@ +lib/red.img: $(CHIBI_DEPENDENCIES) all-libs + $(CHIBI) -xscheme.red -d $@ + lib/snow.img: $(CHIBI_DEPENDENCIES) all-libs $(CHIBI) -mchibi.snow.commands -mchibi.snow.interface -mchibi.snow.package -mchibi.snow.utils -d $@ @@ -362,6 +365,7 @@ install: install-base ifneq "$(IMAGE_FILES)" "" echo "Generating images" -cd / && LD_LIBRARY_PATH="$(DESTDIR)$(SOLIBDIR):$(LD_LIBRARY_PATH)" DYLD_LIBRARY_PATH="$(DESTDIR)$(SOLIBDIR):$(DYLD_LIBRARY_PATH)" $(DESTDIR)$(BINDIR)/chibi-scheme$(EXE) -d $(DESTDIR)$(MODDIR)/chibi.img + -cd / && LD_LIBRARY_PATH="$(DESTDIR)$(SOLIBDIR):$(LD_LIBRARY_PATH)" DYLD_LIBRARY_PATH="$(DESTDIR)$(SOLIBDIR):$(DYLD_LIBRARY_PATH)" $(DESTDIR)$(BINDIR)/chibi-scheme$(EXE) -xscheme.red -d $(DESTDIR)$(MODDIR)/red.img -cd / && LD_LIBRARY_PATH="$(DESTDIR)$(SOLIBDIR):$(LD_LIBRARY_PATH)" DYLD_LIBRARY_PATH="$(DESTDIR)$(SOLIBDIR):$(DYLD_LIBRARY_PATH)" $(DESTDIR)$(BINDIR)/chibi-scheme$(EXE) -mchibi.snow.commands -mchibi.snow.interface -mchibi.snow.package -mchibi.snow.utils -d $(DESTDIR)$(MODDIR)/snow.img endif diff --git a/lib/scheme/box.sld b/lib/scheme/box.sld new file mode 100644 index 00000000..75807284 --- /dev/null +++ b/lib/scheme/box.sld @@ -0,0 +1,4 @@ + +(define-library (scheme box) + (import (srfi 111)) + (export box box? unbox set-box!)) diff --git a/lib/scheme/charset.sld b/lib/scheme/charset.sld new file mode 100644 index 00000000..c2df5f0f --- /dev/null +++ b/lib/scheme/charset.sld @@ -0,0 +1,37 @@ + +(define-library (scheme charset) + (import (srfi 14)) + (export + char-set? char-set= char-set<= + char-set-hash + char-set-cursor char-set-ref char-set-cursor-next end-of-char-set? + char-set-fold char-set-unfold char-set-unfold! + char-set-for-each char-set-map + char-set-copy char-set + + list->char-set string->char-set + list->char-set! string->char-set! + + char-set-filter ucs-range->char-set ->char-set + char-set-filter! ucs-range->char-set! + + char-set->list char-set->string + + char-set-size char-set-count char-set-contains? + char-set-every char-set-any + + char-set-adjoin char-set-delete + char-set-adjoin! char-set-delete! + + char-set-complement char-set-union char-set-intersection + char-set-complement! char-set-union! char-set-intersection! + + char-set-difference char-set-xor char-set-diff+intersection + char-set-difference! char-set-xor! char-set-diff+intersection! + + char-set:lower-case char-set:upper-case char-set:title-case + char-set:letter char-set:digit char-set:letter+digit + char-set:graphic char-set:printing char-set:whitespace + char-set:iso-control char-set:punctuation char-set:symbol + char-set:hex-digit char-set:blank char-set:ascii + char-set:empty char-set:full)) diff --git a/lib/scheme/comparator.sld b/lib/scheme/comparator.sld new file mode 100644 index 00000000..f448e148 --- /dev/null +++ b/lib/scheme/comparator.sld @@ -0,0 +1,25 @@ + +(define-library (scheme comparator) + (import (srfi 128)) + (export + ;; Predicates: + comparator? comparator-ordered? comparator-hashable? + ;; Constructors: + make-comparator make-pair-comparator make-list-comparator + make-vector-comparator make-eq-comparator make-eqv-comparator + make-equal-comparator + ;; Standard hash functions: + boolean-hash char-hash char-ci-hash string-hash string-ci-hash + symbol-hash number-hash + ;; Bounds and salt: + hash-bound hash-salt + ;; Default comparators: + make-default-comparator default-hash comparator-register-default! + ;; Accessors and invokers: + comparator-type-test-predicate comparator-equality-predicate + comparator-ordering-predicate comparator-hash-function + comparator-test-type comparator-check-type comparator-hash + ;; Comparison predicates: + =? ? <=? >=? + ;;Syntax: + comparator-if<=>)) diff --git a/lib/scheme/ephemeron.sld b/lib/scheme/ephemeron.sld new file mode 100644 index 00000000..08acbfb2 --- /dev/null +++ b/lib/scheme/ephemeron.sld @@ -0,0 +1,5 @@ + +(define-library (scheme ephemeron) + (import (srfi 124)) + (export make-ephemeron ephemeron? ephemeron-broken? + ephemeron-key ephemeron-datum)) diff --git a/lib/scheme/generator.sld b/lib/scheme/generator.sld new file mode 100644 index 00000000..b6c097ba --- /dev/null +++ b/lib/scheme/generator.sld @@ -0,0 +1,39 @@ + +(define-library (scheme generator) + (import (srfi 121)) + (export generator + make-iota-generator + make-range-generator + make-coroutine-generator + list->generator + vector->generator + reverse-vector->generator + string->generator + bytevector->generator + make-for-each-generator + make-unfold-generator + gcons* + gappend + gcombine + gfilter + gremove + gtake + gdrop + gtake-while + gdrop-while + gdelete + gdelete-neighbor-dups + gindex + gselect + generator->list + generator->reverse-list + generator->vector + generator->vector! + generator->string + generator-fold + generator-for-each + generator-find + generator-count + generator-any + generator-every + generator-unfold)) diff --git a/lib/scheme/hash-table.sld b/lib/scheme/hash-table.sld new file mode 100644 index 00000000..dabffdf9 --- /dev/null +++ b/lib/scheme/hash-table.sld @@ -0,0 +1,29 @@ + +(define-library (scheme hash-table) + (import (srfi 125)) + (export + ;; Constructors: + make-hash-table hash-table hash-table-unfold alist->hash-table + ;; Predicates: + hash-table? hash-table-contains? hash-table-exists? + hash-table-empty? hash-table=? hash-table-mutable? + ;; Accessors: + hash-table-ref hash-table-ref/default + ;; Mutators: + hash-table-set! hash-table-delete! hash-table-intern! + hash-table-update! hash-table-update!/default hash-table-pop! + hash-table-clear! + ;; The whole hash table: + hash-table-size hash-table-keys hash-table-values + hash-table-entries hash-table-find hash-table-count + ;; Mapping and folding: + hash-table-map hash-table-for-each hash-table-walk + hash-table-map! hash-table-map->list hash-table-fold hash-table-prune! + ;; Copying and conversion: + hash-table-copy hash-table-empty-copy hash-table->alist + ;; Hash tables as sets: + hash-table-union! hash-table-merge! + hash-table-intersection! hash-table-difference! hash-table-xor! + ;; Hash functions and reflectivity: + hash string-hash string-ci-hash hash-by-identity + hash-table-equivalence-function hash-table-hash-function)) diff --git a/lib/scheme/ilist.sld b/lib/scheme/ilist.sld new file mode 100644 index 00000000..9612b558 --- /dev/null +++ b/lib/scheme/ilist.sld @@ -0,0 +1,79 @@ + +(define-library (scheme ilist) + (import (srfi 116)) + (export + ;; Syntax + iq + + ;; Constructors + ipair ilist + xipair ipair* make-ilist ilist-tabulate + ilist-copy iiota + + ;; Predicates + ipair? proper-ilist? ilist? dotted-ilist? + not-ipair? null-ilist? + ilist= + + ;; Selectors + icar icdr icaar icadr icdar icddr + icaaaar icaaadr icaadar icaaddr + icadaar icadadr icaddar icadddr + icdaaar icdaadr icdadar icdaddr + icddaar icddadr icdddar icddddr + icaaar icaadr icadar icaddr + icdaar icdadr icddar icdddr + ilist-ref + ifirst isecond ithird ifourth ififth isixth iseventh ieighth ininth itenth + icar+icdr + itake idrop ilist-tail + itake-right idrop-right + isplit-at + ilast last-ipair + + ;; Miscellaneous: length, append, concatenate, reverse, zip & count + ilength + iappend iconcatenate ireverse iappend-reverse + izip iunzip1 iunzip2 iunzip3 iunzip4 iunzip5 + icount + + ;; Fold, unfold & map + imap ifor-each + ifold iunfold ipair-fold ireduce + ifold-right iunfold-right ipair-fold-right ireduce-right + iappend-map ipair-for-each ifilter-map imap-in-order + + ;; Filtering & partitioning + ifilter ipartition iremove + + ;; Searching + imember imemq imemv + ifind ifind-tail + iany ievery + ilist-index + itake-while idrop-while + ispan ibreak + + ;; Deleting + idelete idelete-duplicates + + ;; Immutable association lists + iassoc iassq iassv + ialist-cons ialist-delete + + ;; Replacement + replace-icar replace-icdr + + ;; Conversion + pair->ipair ipair->pair + list->ilist ilist->list + tree->itree itree->tree + gtree->itree gtree->tree + + ;; Procedure application + iapply + + ;; Comparators + ipair-comparator ilist-comparator + make-ilist-comparator make-improper-ilist-comparator + make-icar-comparator make-icdr-comparator)) diff --git a/lib/scheme/list-queue.sld b/lib/scheme/list-queue.sld new file mode 100644 index 00000000..cde723cc --- /dev/null +++ b/lib/scheme/list-queue.sld @@ -0,0 +1,11 @@ + +(define-library (scheme list-queue) + (import (srfi 117)) + (export + make-list-queue list-queue list-queue-copy list-queue-unfold + list-queue-unfold-right list-queue? list-queue-empty? + list-queue-front list-queue-back list-queue-list list-queue-first-last + list-queue-add-front! list-queue-add-back! list-queue-remove-front! + list-queue-remove-back! list-queue-remove-all! list-queue-set-list! + list-queue-append list-queue-append! list-queue-concatenate + list-queue-map list-queue-map! list-queue-for-each)) diff --git a/lib/scheme/list.sld b/lib/scheme/list.sld new file mode 100644 index 00000000..96cf245f --- /dev/null +++ b/lib/scheme/list.sld @@ -0,0 +1,21 @@ + +(define-library (scheme list) + (import (srfi 1)) + (export + xcons cons* make-list list-tabulate list-copy circular-list iota + proper-list? circular-list? dotted-list? not-pair? null-list? list= + first second third fourth fifth sixth seventh eighth ninth tenth + car+cdr take drop take-right drop-right take! drop-right! split-at split-at! + last last-pair length+ concatenate append! concatenate! reverse! + append-reverse append-reverse! + zip unzip1 unzip2 unzip3 unzip4 unzip5 count + fold unfold pair-fold reduce fold-right unfold-right + pair-fold-right reduce-right + append-map append-map! map! pair-for-each filter-map map-in-order + filter partition remove filter! partition! remove! find find-tail any every + list-index take-while drop-while take-while! span break span! break! + delete delete-duplicates delete! delete-duplicates! + alist-cons alist-copy alist-delete alist-delete! + lset<= lset= lset-adjoin lset-union lset-union! lset-intersection + lset-intersection! lset-difference lset-difference! lset-xor lset-xor! + lset-diff+intersection lset-diff+intersection!)) diff --git a/lib/scheme/red.sld b/lib/scheme/red.sld new file mode 100644 index 00000000..dc32b030 --- /dev/null +++ b/lib/scheme/red.sld @@ -0,0 +1,422 @@ + +(define-library (scheme red) + (import + (scheme base) + (scheme box) + (scheme case-lambda) + (scheme char) + (scheme charset) + (scheme comparator) + (scheme complex) + (scheme cxr) + (scheme ephemeron) + (scheme eval) + (scheme file) + (scheme generator) + (scheme hash-table) + (scheme ilist) + (scheme inexact) + (scheme lazy) + (scheme list-queue) + (scheme list) + (scheme load) + (scheme process-context) + (scheme read) + (scheme repl) + (scheme sort) + (scheme time) + (scheme vector) + (scheme write)) + (export + * + + - ->char-set + ... / + < <= + <=? + =? > + >= >=? + >? _ + abs acos + alist->hash-table + alist-cons alist-copy + alist-delete alist-delete! + and angle + any append + append! + append-map append-map! + append-reverse append-reverse! + apply + asin + assoc assq + assv atan + begin + binary-port? + boolean-hash boolean=? + boolean? box + box? break + break! bytevector + bytevector->generator bytevector-append + bytevector-copy bytevector-copy! + bytevector-length bytevector-u8-ref + bytevector-u8-set! bytevector? + caaaar caaadr + caaar caadar + caaddr caadr + caar cadaar + cadadr cadar + caddar cadddr + caddr cadr + call-with-current-continuation call-with-input-file + call-with-output-file + call-with-port + call-with-values call/cc + car car+cdr + case case-lambda + cdaaar cdaadr + cdaar cdadar + cdaddr cdadr + cdar cddaar + cddadr cddar + cdddar cddddr + cdddr cddr + cdr ceiling + char->integer char-alphabetic? + char-ci-hash char-ci<=? + char-ci=? char-ci>? + char-downcase char-foldcase + char-hash char-lower-case? + char-numeric? char-ready? + char-set char-set->list + char-set->string char-set-adjoin + char-set-adjoin! char-set-any + char-set-complement char-set-complement! + char-set-contains? char-set-copy + char-set-count char-set-cursor + char-set-cursor-next char-set-delete + char-set-delete! char-set-diff+intersection + char-set-diff+intersection! char-set-difference + char-set-difference! char-set-every + char-set-filter char-set-filter! + char-set-fold char-set-for-each + char-set-hash char-set-intersection + char-set-intersection! char-set-map + char-set-ref char-set-size + char-set-unfold char-set-unfold! + char-set-union char-set-union! + char-set-xor char-set-xor! + char-set:ascii char-set:blank + char-set:digit char-set:empty + char-set:full char-set:graphic + char-set:hex-digit char-set:iso-control + char-set:letter char-set:letter+digit + char-set:lower-case char-set:printing + char-set:punctuation char-set:symbol + char-set:title-case char-set:upper-case + char-set:whitespace char-set<= + char-set= char-upcase + char-upper-case? char-whitespace? + char<=? char=? + char>? char? + circular-list circular-list? + close-input-port close-output-port + close-port + command-line comparator-check-type + comparator-equality-predicate comparator-hash + comparator-hash-function comparator-hashable? + comparator-if<=> comparator-ordered? + comparator-ordering-predicate comparator-register-default! + comparator-test-type comparator-type-test-predicate + comparator? + complex? concatenate + concatenate! cond + cond-expand cons + cons* + cos + count + current-error-port + current-input-port current-jiffy + current-output-port + current-second default-hash + define + define-record-type define-syntax + define-values delay + delay-force delete + delete! delete-duplicates + delete-duplicates! delete-file + denominator + digit-value display + do dotted-list? + drop drop-right + drop-right! drop-while + dynamic-wind eighth + else emergency-exit + end-of-char-set? + environment + eof-object eof-object? + ephemeron-broken? ephemeron-key + ephemeron-datum ephemeron? + eq? equal? + eqv? + error eval + even? every + exact + exact-integer-sqrt + exact-integer? + exact? + exit exp + expt features + fifth file-error? + file-exists? + filter filter! + filter-map find + find-tail + finite? first + floor floor-quotient + floor-remainder floor/ + flush-output-port + fold fold-right + for-each force + fourth gappend + gcd + gcombine gcons* + gdelete gdelete-neighbor-dups + gdrop gdrop-while + generator + generator->list generator->reverse-list + generator->string generator->vector + generator->vector! generator-any + generator-count generator-every + generator-find generator-fold + generator-for-each generator-unfold + get-environment-variable get-environment-variables + get-output-bytevector get-output-string + gfilter gindex + gremove gselect + gtake gtake-while + gtree->itree gtree->tree + guard hash + hash-bound hash-by-identity + hash-salt hash-table + hash-table->alist hash-table-clear! + hash-table-contains? hash-table-copy + hash-table-count hash-table-delete! + hash-table-difference! hash-table-empty-copy + hash-table-empty? hash-table-entries + hash-table-equivalence-function hash-table-exists? + hash-table-find hash-table-fold + hash-table-for-each hash-table-hash-function + hash-table-intern! hash-table-intersection! + hash-table-keys hash-table-map + hash-table-map! hash-table-map->list + hash-table-merge! hash-table-mutable? + hash-table-pop! hash-table-prune! + hash-table-ref hash-table-ref/default + hash-table-set! hash-table-size + hash-table-unfold hash-table-union! + hash-table-update! hash-table-update!/default + hash-table-values hash-table-walk + hash-table-xor! hash-table=? + hash-table? + if ilist->list + ilist-comparator ilist-tail + imag-part + include include-ci + inexact + inexact? infinite? + input-port-open? input-port? + integer->char integer? + interaction-environment iota + ipair->pair ipair-comparator + iq + itree->tree + jiffies-per-second lambda + last last-pair + lcm + length + length+ let + let* let*-values + let-syntax + let-values letrec + letrec* letrec-syntax + list list->char-set + list->char-set! list->generator + list->ilist list->string + list->vector list-copy + list-delete-neighbor-dups list-delete-neighbor-dups! + list-index list-merge + list-merge! list-queue + list-queue-add-back! list-queue-add-front! + list-queue-append list-queue-append! + list-queue-back list-queue-concatenate + list-queue-copy list-queue-empty? + list-queue-first-last list-queue-for-each + list-queue-front list-queue-list + list-queue-map list-queue-map! + list-queue-remove-all! list-queue-remove-back! + list-queue-remove-front! list-queue-set-list! + list-queue-unfold list-queue-unfold-right + list-queue? list-ref + list-set! list-sort + list-sort! list-sorted? + list-stable-sort list-stable-sort! + list-tabulate list-tail + list= list? + load + log + lset-adjoin + lset-diff+intersection lset-diff+intersection! + lset-difference lset-difference! + lset-intersection lset-intersection! + lset-union lset-union! + lset-xor lset-xor! + lset<= lset= + magnitude make-bytevector + make-comparator + make-coroutine-generator make-default-comparator + make-ephemeron + make-eq-comparator make-equal-comparator + make-eqv-comparator + make-for-each-generator + make-hash-table make-icar-comparator + make-icdr-comparator make-improper-ilist-comparator + make-iota-generator make-list + make-list-comparator make-list-queue + make-pair-comparator make-parameter + make-polar make-promise + make-range-generator make-rectangular + make-string + make-unfold-generator make-vector + make-vector-comparator map + map! map-in-order + max member + memq memv + min modulo + nan? negative? + newline ninth + not not-ipair? + not-pair? + null-list? null? + number->string number-hash + number? numerator + odd? + open-binary-input-file open-binary-output-file + open-input-bytevector open-input-file + open-input-string + open-output-bytevector open-output-file + open-output-string + or output-port-open? + output-port? pair->ipair + pair-fold pair-fold-right + pair-for-each + pair? + parameterize partition + partition! peek-char + peek-u8 + port? positive? + procedure? + promise? proper-list? + quasiquote quote + quotient raise + raise-continuable + rational? rationalize + read read-bytevector + read-bytevector! read-char + read-error? read-line + read-string read-u8 + real-part + real? reduce + reduce-right + remainder + remove remove! + replace-icar replace-icdr + reverse reverse! + reverse-list->vector reverse-vector->generator + reverse-vector->list + round + second set! + set-box! set-car! + set-cdr! + seventh sin + sixth + span + span! split-at + split-at! sqrt + square string + string->char-set string->char-set! + string->generator string->list + string->number string->symbol + string->utf8 string->vector + string-append string-ci-hash + string-ci<=? string-ci=? + string-ci>? + string-copy string-copy! + string-downcase string-fill! + string-foldcase string-for-each + string-hash + string-length string-map + string-ref string-set! + string-upcase + string<=? string=? + string>? string? + substring + symbol->string symbol-hash + symbol=? symbol? + syntax-error + syntax-rules + take + take! take-right + take-while take-while! + tan tenth + textual-port? third + tree->itree + truncate truncate-quotient + truncate-remainder truncate/ + u8-ready? + ucs-range->char-set ucs-range->char-set! + unbox unfold + unfold-right unless + unquote unquote-splicing + unzip1 unzip2 + unzip3 unzip4 + unzip5 utf8->string + values vector + vector->generator vector->list + vector->string vector-any + vector-append vector-append-subvectors + vector-binary-search vector-concatenate + vector-copy vector-copy! + vector-count vector-cumulate + vector-delete-neighbor-dups vector-delete-neighbor-dups! + vector-empty? vector-every + vector-fill! vector-find-median + vector-find-median! vector-fold + vector-fold-right vector-for-each + vector-index vector-index-right + vector-length vector-map + vector-map! vector-merge + vector-merge! vector-partition + vector-ref vector-reverse! + vector-reverse-copy vector-reverse-copy! + vector-select! vector-separate! + vector-set! vector-skip + vector-skip-right vector-sort + vector-sort! vector-sorted? + vector-stable-sort vector-stable-sort! + vector-swap! vector-unfold + vector-unfold! vector-unfold-right + vector-unfold-right! vector= + vector? + when with-exception-handler + with-input-from-file + with-output-to-file write + write-bytevector write-char + write-string write-u8 + xcons + zero? + zip + )) diff --git a/lib/scheme/sort.sld b/lib/scheme/sort.sld new file mode 100644 index 00000000..3758431e --- /dev/null +++ b/lib/scheme/sort.sld @@ -0,0 +1,19 @@ + +(define-library (scheme sort) + (import (srfi 132)) + (export + list-sorted? vector-sorted? + list-sort list-stable-sort + list-sort! list-stable-sort! + vector-sort vector-stable-sort + vector-sort! vector-stable-sort! + list-merge list-merge! + vector-merge vector-merge! + list-delete-neighbor-dups + list-delete-neighbor-dups! + vector-delete-neighbor-dups + vector-delete-neighbor-dups! + vector-find-median + vector-find-median! + vector-select! + vector-separate!)) diff --git a/lib/scheme/vector.sld b/lib/scheme/vector.sld new file mode 100644 index 00000000..8a38851b --- /dev/null +++ b/lib/scheme/vector.sld @@ -0,0 +1,36 @@ + +(define-library (scheme vector) + (import (srfi 133)) + (export + ;; Constructors + make-vector vector + vector-unfold vector-unfold-right + vector-copy vector-reverse-copy + vector-append vector-concatenate vector-append-subvectors + ;; Predicates + vector? + vector-empty? + vector= + ;; Selectors + vector-ref + vector-length + ;; Iteration + vector-fold vector-fold-right + vector-map vector-map! + vector-for-each vector-count + vector-cumulate + ;; Searching + vector-index vector-index-right + vector-skip vector-skip-right + vector-binary-search + vector-any vector-every + vector-partition + ;; Mutators + vector-set! vector-swap! + vector-fill! vector-reverse! + vector-copy! vector-reverse-copy! + vector-unfold! vector-unfold-right! + ;; Conversion + vector->list reverse-vector->list + list->vector reverse-list->vector + vector->string string->vector))