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 \
|
system test time trace type-inference uri weak monad/environment \
|
||||||
show show/base crypto/sha2
|
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)
|
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
|
lib/chibi.img: $(CHIBI_DEPENDENCIES) all-libs
|
||||||
$(CHIBI) -d $@
|
$(CHIBI) -d $@
|
||||||
|
|
||||||
|
lib/red.img: $(CHIBI_DEPENDENCIES) all-libs
|
||||||
|
$(CHIBI) -xscheme.red -d $@
|
||||||
|
|
||||||
lib/snow.img: $(CHIBI_DEPENDENCIES) all-libs
|
lib/snow.img: $(CHIBI_DEPENDENCIES) all-libs
|
||||||
$(CHIBI) -mchibi.snow.commands -mchibi.snow.interface -mchibi.snow.package -mchibi.snow.utils -d $@
|
$(CHIBI) -mchibi.snow.commands -mchibi.snow.interface -mchibi.snow.package -mchibi.snow.utils -d $@
|
||||||
|
|
||||||
|
@ -362,6 +365,7 @@ install: install-base
|
||||||
ifneq "$(IMAGE_FILES)" ""
|
ifneq "$(IMAGE_FILES)" ""
|
||||||
echo "Generating images"
|
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) -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
|
-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
|
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