mirror of
https://github.com/ashinn/chibi-scheme.git
synced 2025-05-18 21:29:19 +02:00
adding (scheme red) and associated srfi aliases
This commit is contained in:
parent
70d61e1fcc
commit
cc92ecf2bc
13 changed files with 732 additions and 1 deletions
6
Makefile
6
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
|
||||
|
||||
|
|
4
lib/scheme/box.sld
Normal file
4
lib/scheme/box.sld
Normal file
|
@ -0,0 +1,4 @@
|
|||
|
||||
(define-library (scheme box)
|
||||
(import (srfi 111))
|
||||
(export box box? unbox set-box!))
|
37
lib/scheme/charset.sld
Normal file
37
lib/scheme/charset.sld
Normal file
|
@ -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))
|
25
lib/scheme/comparator.sld
Normal file
25
lib/scheme/comparator.sld
Normal file
|
@ -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<=>))
|
5
lib/scheme/ephemeron.sld
Normal file
5
lib/scheme/ephemeron.sld
Normal file
|
@ -0,0 +1,5 @@
|
|||
|
||||
(define-library (scheme ephemeron)
|
||||
(import (srfi 124))
|
||||
(export make-ephemeron ephemeron? ephemeron-broken?
|
||||
ephemeron-key ephemeron-datum))
|
39
lib/scheme/generator.sld
Normal file
39
lib/scheme/generator.sld
Normal file
|
@ -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))
|
29
lib/scheme/hash-table.sld
Normal file
29
lib/scheme/hash-table.sld
Normal file
|
@ -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))
|
79
lib/scheme/ilist.sld
Normal file
79
lib/scheme/ilist.sld
Normal file
|
@ -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))
|
11
lib/scheme/list-queue.sld
Normal file
11
lib/scheme/list-queue.sld
Normal file
|
@ -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))
|
21
lib/scheme/list.sld
Normal file
21
lib/scheme/list.sld
Normal file
|
@ -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!))
|
422
lib/scheme/red.sld
Normal file
422
lib/scheme/red.sld
Normal file
|
@ -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-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>=?
|
||||
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-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>=?
|
||||
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
|
||||
))
|
19
lib/scheme/sort.sld
Normal file
19
lib/scheme/sort.sld
Normal file
|
@ -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!))
|
36
lib/scheme/vector.sld
Normal file
36
lib/scheme/vector.sld
Normal file
|
@ -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))
|
Loading…
Add table
Reference in a new issue