mirror of
https://github.com/ashinn/chibi-scheme.git
synced 2025-05-18 21:29:19 +02:00
extending (scheme red)
This commit is contained in:
parent
ab88f53e48
commit
eb38a5836a
7 changed files with 809 additions and 391 deletions
31
lib/scheme/ideque.sld
Normal file
31
lib/scheme/ideque.sld
Normal file
|
@ -0,0 +1,31 @@
|
|||
|
||||
(define-library (scheme ideque)
|
||||
(import (srfi 134))
|
||||
(export ideque ideque-tabulate ideque-unfold ideque-unfold-right
|
||||
ideque? ideque-empty? ideque= ideque-any ideque-every
|
||||
|
||||
ideque-front ideque-add-front ideque-remove-front
|
||||
ideque-back ideque-add-back ideque-remove-back
|
||||
|
||||
ideque-ref
|
||||
ideque-take ideque-take-right ideque-drop ideque-drop-right
|
||||
ideque-split-at
|
||||
|
||||
ideque-length ideque-append ideque-reverse
|
||||
ideque-count ideque-zip
|
||||
|
||||
ideque-map ideque-filter-map
|
||||
ideque-for-each ideque-for-each-right
|
||||
ideque-fold ideque-fold-right
|
||||
ideque-append-map
|
||||
|
||||
ideque-filter ideque-remove ideque-partition
|
||||
|
||||
ideque-find ideque-find-right
|
||||
ideque-take-while ideque-take-while-right
|
||||
ideque-drop-while ideque-drop-while-right
|
||||
ideque-span ideque-break
|
||||
|
||||
list->ideque ideque->list
|
||||
generator->ideque ideque->generator
|
||||
))
|
25
lib/scheme/lseq.sld
Normal file
25
lib/scheme/lseq.sld
Normal file
|
@ -0,0 +1,25 @@
|
|||
|
||||
(define-library (scheme lseq)
|
||||
(import (srfi 127))
|
||||
(export
|
||||
;; Constructors
|
||||
generator->lseq
|
||||
;; Predicates
|
||||
lseq? lseq=?
|
||||
;; Selectors
|
||||
lseq-car lseq-cdr
|
||||
lseq-first lseq-rest lseq-ref
|
||||
lseq-take lseq-drop
|
||||
;; The whole lazy sequence
|
||||
lseq-realize lseq->generator
|
||||
lseq-length
|
||||
lseq-append lseq-zip
|
||||
;; Mapping and filtering
|
||||
lseq-map lseq-for-each
|
||||
lseq-filter lseq-remove
|
||||
;; Searching
|
||||
lseq-find lseq-find-tail
|
||||
lseq-any lseq-every
|
||||
lseq-index
|
||||
lseq-take-while lseq-drop-while
|
||||
lseq-member lseq-memq lseq-memv))
|
|
@ -14,409 +14,587 @@
|
|||
(scheme file)
|
||||
(scheme generator)
|
||||
(scheme hash-table)
|
||||
(scheme ideque)
|
||||
(scheme ilist)
|
||||
(scheme inexact)
|
||||
(scheme lazy)
|
||||
(scheme list-queue)
|
||||
(scheme list)
|
||||
(scheme load)
|
||||
(scheme lseq)
|
||||
(scheme process-context)
|
||||
(scheme read)
|
||||
(scheme repl)
|
||||
(scheme rlist)
|
||||
(scheme set)
|
||||
(scheme sort)
|
||||
(scheme stream)
|
||||
(scheme text)
|
||||
(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
|
||||
* +
|
||||
- ->char-set
|
||||
... /
|
||||
< <=
|
||||
<=? <?
|
||||
= =>
|
||||
=? >
|
||||
>= >=?
|
||||
>? _
|
||||
abs acos
|
||||
alist->bag 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 bag
|
||||
bag->alist bag->list
|
||||
bag->set bag->set
|
||||
bag-adjoin bag-adjoin!
|
||||
bag-any? bag-comparator
|
||||
bag-comparator bag-contains?
|
||||
bag-copy bag-count
|
||||
bag-decrement! bag-decrement!
|
||||
bag-delete bag-delete!
|
||||
bag-delete-all bag-delete-all!
|
||||
bag-difference bag-difference!
|
||||
bag-disjoint? bag-element-comparator
|
||||
bag-element-count bag-element-count
|
||||
bag-empty? bag-every?
|
||||
bag-filter bag-filter!
|
||||
bag-find bag-fold
|
||||
bag-fold-unique bag-fold-unique
|
||||
bag-for-each bag-for-each-unique
|
||||
bag-for-each-unique bag-increment!
|
||||
bag-increment! bag-intersection
|
||||
bag-intersection! bag-map
|
||||
bag-member bag-partition
|
||||
bag-partition! bag-product
|
||||
bag-product bag-product!
|
||||
bag-product! bag-remove
|
||||
bag-remove! bag-replace
|
||||
bag-replace! bag-search!
|
||||
bag-size bag-sum
|
||||
bag-sum bag-sum!
|
||||
bag-sum! bag-unfold
|
||||
bag-union bag-union!
|
||||
bag-unique-size bag-xor
|
||||
bag-xor! bag<=?
|
||||
bag<? bag=?
|
||||
bag>=? bag>?
|
||||
bag? 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-stream 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-datum ephemeron-key
|
||||
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->ideque
|
||||
generator->list generator->lseq
|
||||
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?
|
||||
ideque ideque->generator
|
||||
ideque->list ideque-add-back
|
||||
ideque-add-front ideque-any
|
||||
ideque-append ideque-append-map
|
||||
ideque-back ideque-break
|
||||
ideque-count ideque-drop
|
||||
ideque-drop-right ideque-drop-while
|
||||
ideque-drop-while-right ideque-empty?
|
||||
ideque-every ideque-filter
|
||||
ideque-filter-map ideque-find
|
||||
ideque-find-right ideque-fold
|
||||
ideque-fold-right ideque-for-each
|
||||
ideque-for-each-right ideque-front
|
||||
ideque-length ideque-map
|
||||
ideque-partition ideque-ref
|
||||
ideque-remove ideque-remove-back
|
||||
ideque-remove-front ideque-reverse
|
||||
ideque-span ideque-split-at
|
||||
ideque-tabulate ideque-take
|
||||
ideque-take-right ideque-take-while
|
||||
ideque-take-while-right ideque-unfold
|
||||
ideque-unfold-right ideque-zip
|
||||
ideque= ideque?
|
||||
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->bag list->bag!
|
||||
list->char-set list->char-set!
|
||||
list->generator list->ideque
|
||||
list->ilist list->rlist
|
||||
list->set list->set
|
||||
list->set! list->set!
|
||||
list->stream list->string
|
||||
list->text 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 lseq->generator
|
||||
lseq-any lseq-append
|
||||
lseq-car lseq-cdr
|
||||
lseq-drop lseq-drop-while
|
||||
lseq-every lseq-filter
|
||||
lseq-find lseq-find-tail
|
||||
lseq-first lseq-for-each
|
||||
lseq-index lseq-length
|
||||
lseq-map lseq-member
|
||||
lseq-memq lseq-memv
|
||||
lseq-realize lseq-ref
|
||||
lseq-remove lseq-rest
|
||||
lseq-take lseq-take-while
|
||||
lseq-zip lseq=?
|
||||
lseq? 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-rlist make-string
|
||||
make-text 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->stream port?
|
||||
positive? procedure?
|
||||
promise? proper-list?
|
||||
quasiquote quote
|
||||
quotient raise
|
||||
raise-continuable rappend
|
||||
rational? rationalize
|
||||
rcaaaar rcaaadr
|
||||
rcaaar rcaadar
|
||||
rcaaddr rcaadr
|
||||
rcaar rcadaar
|
||||
rcadadr rcadar
|
||||
rcaddar rcadddr
|
||||
rcaddr rcadr
|
||||
rcar rcdaaar
|
||||
rcdaadr rcdaar
|
||||
rcdadar rcdaddr
|
||||
rcdadr rcdar
|
||||
rcddaar rcddadr
|
||||
rcddar rcdddar
|
||||
rcddddr rcdddr
|
||||
rcddr rcdr
|
||||
rcons 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->text reverse-list->vector
|
||||
reverse-vector->generator reverse-vector->list
|
||||
rfor-each rlength
|
||||
rlist rlist->list
|
||||
rlist-ref rlist-ref/update
|
||||
rlist-set rlist-tail
|
||||
rlist? rmap
|
||||
rnull? round
|
||||
rpair? rquote
|
||||
rreverse second
|
||||
set set
|
||||
set! set->bag
|
||||
set->bag set->bag!
|
||||
set->bag! set->list
|
||||
set->list set-adjoin
|
||||
set-adjoin set-adjoin!
|
||||
set-adjoin! set-any?
|
||||
set-any? set-box!
|
||||
set-car! set-cdr!
|
||||
set-comparator set-comparator
|
||||
set-contains? set-contains?
|
||||
set-copy set-copy
|
||||
set-count set-count
|
||||
set-delete set-delete
|
||||
set-delete! set-delete!
|
||||
set-delete-all set-delete-all
|
||||
set-delete-all! set-delete-all!
|
||||
set-difference set-difference
|
||||
set-difference! set-difference!
|
||||
set-disjoint? set-disjoint?
|
||||
set-element-comparator set-element-comparator
|
||||
set-empty? set-empty?
|
||||
set-every? set-every?
|
||||
set-filter set-filter
|
||||
set-filter! set-filter!
|
||||
set-find set-find
|
||||
set-fold set-fold
|
||||
set-for-each set-for-each
|
||||
set-intersection set-intersection
|
||||
set-intersection! set-intersection!
|
||||
set-map set-map
|
||||
set-member set-member
|
||||
set-partition set-partition
|
||||
set-partition! set-partition!
|
||||
set-remove set-remove
|
||||
set-remove! set-remove!
|
||||
set-replace set-replace
|
||||
set-replace! set-replace!
|
||||
set-search! set-search!
|
||||
set-size set-size
|
||||
set-unfold set-unfold
|
||||
set-union set-union
|
||||
set-union! set-union!
|
||||
set-xor set-xor
|
||||
set-xor! set-xor!
|
||||
set<=? set<=?
|
||||
set<? set<?
|
||||
set=? set=?
|
||||
set>=? set>=?
|
||||
set>? set>?
|
||||
set? set?
|
||||
seventh sin
|
||||
sixth span
|
||||
span! split-at
|
||||
split-at! sqrt
|
||||
square stream
|
||||
stream->list stream-append
|
||||
stream-car stream-cdr
|
||||
stream-concat stream-cons
|
||||
stream-constant stream-drop
|
||||
stream-drop-while stream-filter
|
||||
stream-fold stream-for-each
|
||||
stream-from stream-iterate
|
||||
stream-lambda stream-length
|
||||
stream-let stream-map
|
||||
stream-match stream-null
|
||||
stream-null? stream-of
|
||||
stream-pair? stream-range
|
||||
stream-ref stream-reverse
|
||||
stream-scan stream-take
|
||||
stream-take-while stream-unfold
|
||||
stream-unfolds stream-zip
|
||||
stream? string
|
||||
string->char-set string->char-set!
|
||||
string->generator string->list
|
||||
string->number string->symbol
|
||||
string->text 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 subtext
|
||||
subtextual symbol->string
|
||||
symbol-hash symbol=?
|
||||
symbol? syntax-error
|
||||
syntax-rules take
|
||||
take! take-right
|
||||
take-while take-while!
|
||||
tan tenth
|
||||
text text-length
|
||||
text-ref text-tabulate
|
||||
text-unfold text-unfold-right
|
||||
text? textual->list
|
||||
textual->string textual->text
|
||||
textual->utf16 textual->utf16be
|
||||
textual->utf16le textual->utf8
|
||||
textual->vector textual-any
|
||||
textual-append textual-ci<=?
|
||||
textual-ci<? textual-ci=?
|
||||
textual-ci>=? textual-ci>?
|
||||
textual-concatenate textual-concatenate-reverse
|
||||
textual-contains textual-contains-right
|
||||
textual-copy textual-count
|
||||
textual-downcase textual-drop
|
||||
textual-drop-right textual-every
|
||||
textual-filter textual-fold
|
||||
textual-fold-right textual-foldcase
|
||||
textual-for-each textual-for-each-index
|
||||
textual-index textual-index-right
|
||||
textual-join textual-length
|
||||
textual-map textual-map-index
|
||||
textual-null? textual-pad
|
||||
textual-pad-right textual-port?
|
||||
textual-prefix-length textual-prefix?
|
||||
textual-ref textual-remove
|
||||
textual-replace textual-replicate
|
||||
textual-skip textual-skip-right
|
||||
textual-split textual-suffix-length
|
||||
textual-suffix? textual-take
|
||||
textual-take-right textual-titlecase
|
||||
textual-trim textual-trim-both
|
||||
textual-trim-right textual-upcase
|
||||
textual<=? textual<?
|
||||
textual=? textual>=?
|
||||
textual>? textual?
|
||||
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
|
||||
utf16->text utf16be->text
|
||||
utf16le->text utf8->string
|
||||
utf8->text values
|
||||
vector vector->generator
|
||||
vector->list vector->string
|
||||
vector->text 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
|
||||
))
|
||||
|
|
53
lib/scheme/rlist.sld
Normal file
53
lib/scheme/rlist.sld
Normal file
|
@ -0,0 +1,53 @@
|
|||
|
||||
(define-library (scheme rlist)
|
||||
(import (srfi 101))
|
||||
(export (rename quote rquote)
|
||||
(rename pair? rpair?)
|
||||
(rename cons rcons)
|
||||
(rename car rcar)
|
||||
(rename cdr rcdr)
|
||||
(rename caar rcaar)
|
||||
(rename cadr rcadr)
|
||||
(rename cddr rcddr)
|
||||
(rename cdar rcdar)
|
||||
(rename caaar rcaaar)
|
||||
(rename caadr rcaadr)
|
||||
(rename caddr rcaddr)
|
||||
(rename cadar rcadar)
|
||||
(rename cdaar rcdaar)
|
||||
(rename cdadr rcdadr)
|
||||
(rename cdddr rcdddr)
|
||||
(rename cddar rcddar)
|
||||
(rename caaaar rcaaaar)
|
||||
(rename caaadr rcaaadr)
|
||||
(rename caaddr rcaaddr)
|
||||
(rename caadar rcaadar)
|
||||
(rename cadaar rcadaar)
|
||||
(rename cadadr rcadadr)
|
||||
(rename cadddr rcadddr)
|
||||
(rename caddar rcaddar)
|
||||
(rename cdaaar rcdaaar)
|
||||
(rename cdaadr rcdaadr)
|
||||
(rename cdaddr rcdaddr)
|
||||
(rename cdadar rcdadar)
|
||||
(rename cddaar rcddaar)
|
||||
(rename cddadr rcddadr)
|
||||
(rename cddddr rcddddr)
|
||||
(rename cdddar rcdddar)
|
||||
(rename null? rnull?)
|
||||
(rename list? rlist?)
|
||||
(rename list rlist)
|
||||
(rename make-list make-rlist)
|
||||
(rename length rlength)
|
||||
(rename append rappend)
|
||||
(rename reverse rreverse)
|
||||
(rename list-tail rlist-tail)
|
||||
(rename list-ref rlist-ref)
|
||||
(rename list-set rlist-set)
|
||||
(rename list-ref/update rlist-ref/update)
|
||||
(rename map rmap)
|
||||
(rename for-each rfor-each)
|
||||
(rename random-access-list->linear-access-list
|
||||
rlist->list)
|
||||
(rename linear-access-list->random-access-list
|
||||
list->rlist)))
|
60
lib/scheme/set.sld
Normal file
60
lib/scheme/set.sld
Normal file
|
@ -0,0 +1,60 @@
|
|||
|
||||
(define-library (scheme set)
|
||||
(import (srfi 113))
|
||||
(export
|
||||
set set-contains? set-unfold
|
||||
;; Predicates:
|
||||
set? set-empty? set-disjoint?
|
||||
;; Accessors:
|
||||
set-member set-element-comparator
|
||||
;; Updaters:
|
||||
set-adjoin set-adjoin! set-replace set-replace!
|
||||
set-delete set-delete! set-delete-all set-delete-all!
|
||||
set-search!
|
||||
;; The whole set:
|
||||
set-size set-find set-count set-any? set-every?
|
||||
;; Mapping and folding:
|
||||
set-map set-for-each set-fold set-filter set-filter!
|
||||
set-remove set-remove! set-partition set-partition!
|
||||
;; Copying and conversion:
|
||||
set-copy set->list list->set list->set!
|
||||
;; Subsets:
|
||||
set=? set<? set>? set<=? set>=?
|
||||
;; Set theory operations:
|
||||
set-union set-intersection set-difference set-xor
|
||||
set-union! set-intersection! set-difference! set-xor!
|
||||
;; Comparators:
|
||||
set-comparator
|
||||
|
||||
;; Constructors:
|
||||
bag bag-contains? bag-unfold
|
||||
;; Predicates:
|
||||
bag? bag-empty? bag-disjoint?
|
||||
;; Accessors:
|
||||
bag-member bag-element-comparator
|
||||
;; Updaters:
|
||||
bag-adjoin bag-adjoin! bag-replace bag-replace!
|
||||
bag-delete bag-delete! bag-delete-all bag-delete-all!
|
||||
bag-search!
|
||||
;; The whole bag:
|
||||
bag-size bag-find bag-count bag-any? bag-every?
|
||||
;; Mapping and folding:
|
||||
bag-map bag-for-each bag-fold bag-filter bag-filter!
|
||||
bag-remove bag-remove! bag-partition bag-partition!
|
||||
;; Copying and conversion:
|
||||
bag-copy bag->list list->bag list->bag!
|
||||
;; Subbags:
|
||||
bag=? bag<? bag>? bag<=? bag>=?
|
||||
;; Bag theory operations:
|
||||
bag-union bag-intersection bag-difference bag-xor
|
||||
bag-union! bag-intersection! bag-difference! bag-xor!
|
||||
;; Comparators:
|
||||
bag-comparator
|
||||
|
||||
;; Additional bag procedures:
|
||||
bag-unique-size
|
||||
bag-sum bag-sum! bag-product bag-product! bag-element-count
|
||||
bag-for-each-unique bag-fold-unique bag-increment! bag-decrement!
|
||||
bag->set set->bag set->bag!
|
||||
bag->alist alist->bag
|
||||
))
|
12
lib/scheme/stream.sld
Normal file
12
lib/scheme/stream.sld
Normal file
|
@ -0,0 +1,12 @@
|
|||
|
||||
(define-library (scheme stream)
|
||||
(import (srfi 41))
|
||||
(export
|
||||
stream-null stream-cons stream? stream-null? stream-pair?
|
||||
stream-car stream-cdr stream-lambda
|
||||
define-stream list->stream port->stream stream stream->list
|
||||
stream-append stream-concat stream-constant stream-drop
|
||||
stream-drop-while stream-filter stream-fold stream-for-each stream-from
|
||||
stream-iterate stream-length stream-let stream-map stream-match _
|
||||
stream-of stream-range stream-ref stream-reverse stream-scan stream-take
|
||||
stream-take-while stream-unfold stream-unfolds stream-zip))
|
59
lib/scheme/text.sld
Normal file
59
lib/scheme/text.sld
Normal file
|
@ -0,0 +1,59 @@
|
|||
|
||||
(define-library (scheme text)
|
||||
(import (srfi 135))
|
||||
(export
|
||||
;; Predicates
|
||||
text? textual?
|
||||
textual-null?
|
||||
textual-every textual-any
|
||||
;; Constructors
|
||||
make-text text
|
||||
text-tabulate
|
||||
text-unfold text-unfold-right
|
||||
;; Conversion
|
||||
textual->text
|
||||
textual->string textual->vector textual->list
|
||||
string->text vector->text list->text reverse-list->text
|
||||
textual->utf8 textual->utf16be
|
||||
textual->utf16 textual->utf16le
|
||||
utf8->text utf16be->text
|
||||
utf16->text utf16le->text
|
||||
;; Selection
|
||||
text-length textual-length
|
||||
text-ref textual-ref
|
||||
subtext subtextual
|
||||
textual-copy
|
||||
textual-take textual-take-right
|
||||
textual-drop textual-drop-right
|
||||
textual-pad textual-pad-right
|
||||
textual-trim textual-trim-right textual-trim-both
|
||||
;; Replacement
|
||||
textual-replace
|
||||
;; Comparison
|
||||
textual=? textual-ci=?
|
||||
textual<? textual-ci<?
|
||||
textual>? textual-ci>?
|
||||
textual<=? textual-ci<=?
|
||||
textual>=? textual-ci>=?
|
||||
;; Prefixes & suffixes
|
||||
textual-prefix-length textual-suffix-length
|
||||
textual-prefix? textual-suffix?
|
||||
;; Searching
|
||||
textual-index textual-index-right
|
||||
textual-skip textual-skip-right
|
||||
textual-contains textual-contains-right
|
||||
;; Case conversion
|
||||
textual-upcase textual-downcase
|
||||
textual-foldcase textual-titlecase
|
||||
;; Concatenation
|
||||
textual-append textual-concatenate textual-concatenate-reverse
|
||||
textual-join
|
||||
;; Fold & map & friends
|
||||
textual-fold textual-fold-right
|
||||
textual-map textual-for-each
|
||||
textual-map-index textual-for-each-index
|
||||
textual-count
|
||||
textual-filter textual-remove
|
||||
;; Replication & splitting
|
||||
textual-replicate textual-split
|
||||
))
|
Loading…
Add table
Reference in a new issue