mirror of
https://github.com/ashinn/chibi-scheme.git
synced 2025-05-19 05:39:18 +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,16 +14,22 @@
|
||||||
(scheme file)
|
(scheme file)
|
||||||
(scheme generator)
|
(scheme generator)
|
||||||
(scheme hash-table)
|
(scheme hash-table)
|
||||||
|
(scheme ideque)
|
||||||
(scheme ilist)
|
(scheme ilist)
|
||||||
(scheme inexact)
|
(scheme inexact)
|
||||||
(scheme lazy)
|
(scheme lazy)
|
||||||
(scheme list-queue)
|
(scheme list-queue)
|
||||||
(scheme list)
|
(scheme list)
|
||||||
(scheme load)
|
(scheme load)
|
||||||
|
(scheme lseq)
|
||||||
(scheme process-context)
|
(scheme process-context)
|
||||||
(scheme read)
|
(scheme read)
|
||||||
(scheme repl)
|
(scheme repl)
|
||||||
|
(scheme rlist)
|
||||||
|
(scheme set)
|
||||||
(scheme sort)
|
(scheme sort)
|
||||||
|
(scheme stream)
|
||||||
|
(scheme text)
|
||||||
(scheme time)
|
(scheme time)
|
||||||
(scheme vector)
|
(scheme vector)
|
||||||
(scheme write))
|
(scheme write))
|
||||||
|
@ -38,235 +44,294 @@
|
||||||
>= >=?
|
>= >=?
|
||||||
>? _
|
>? _
|
||||||
abs acos
|
abs acos
|
||||||
alist->hash-table
|
alist->bag alist->hash-table
|
||||||
alist-cons alist-copy
|
alist-cons alist-copy
|
||||||
alist-delete alist-delete!
|
alist-delete alist-delete!
|
||||||
and angle
|
and angle
|
||||||
any append
|
any append
|
||||||
append!
|
append! append-map
|
||||||
append-map append-map!
|
append-map! append-reverse
|
||||||
append-reverse append-reverse!
|
append-reverse! apply
|
||||||
apply
|
asin assoc
|
||||||
asin
|
assq assv
|
||||||
assoc assq
|
atan bag
|
||||||
assv atan
|
bag->alist bag->list
|
||||||
begin
|
bag->set bag->set
|
||||||
binary-port?
|
bag-adjoin bag-adjoin!
|
||||||
boolean-hash boolean=?
|
bag-any? bag-comparator
|
||||||
boolean? box
|
bag-comparator bag-contains?
|
||||||
box? break
|
bag-copy bag-count
|
||||||
break! bytevector
|
bag-decrement! bag-decrement!
|
||||||
bytevector->generator bytevector-append
|
bag-delete bag-delete!
|
||||||
bytevector-copy bytevector-copy!
|
bag-delete-all bag-delete-all!
|
||||||
bytevector-length bytevector-u8-ref
|
bag-difference bag-difference!
|
||||||
bytevector-u8-set! bytevector?
|
bag-disjoint? bag-element-comparator
|
||||||
caaaar caaadr
|
bag-element-count bag-element-count
|
||||||
caaar caadar
|
bag-empty? bag-every?
|
||||||
caaddr caadr
|
bag-filter bag-filter!
|
||||||
caar cadaar
|
bag-find bag-fold
|
||||||
cadadr cadar
|
bag-fold-unique bag-fold-unique
|
||||||
caddar cadddr
|
bag-for-each bag-for-each-unique
|
||||||
caddr cadr
|
bag-for-each-unique bag-increment!
|
||||||
call-with-current-continuation call-with-input-file
|
bag-increment! bag-intersection
|
||||||
call-with-output-file
|
bag-intersection! bag-map
|
||||||
call-with-port
|
bag-member bag-partition
|
||||||
call-with-values call/cc
|
bag-partition! bag-product
|
||||||
car car+cdr
|
bag-product bag-product!
|
||||||
case case-lambda
|
bag-product! bag-remove
|
||||||
cdaaar cdaadr
|
bag-remove! bag-replace
|
||||||
cdaar cdadar
|
bag-replace! bag-search!
|
||||||
cdaddr cdadr
|
bag-size bag-sum
|
||||||
cdar cddaar
|
bag-sum bag-sum!
|
||||||
cddadr cddar
|
bag-sum! bag-unfold
|
||||||
cdddar cddddr
|
bag-union bag-union!
|
||||||
cdddr cddr
|
bag-unique-size bag-xor
|
||||||
cdr ceiling
|
bag-xor! bag<=?
|
||||||
char->integer char-alphabetic?
|
bag<? bag=?
|
||||||
char-ci-hash char-ci<=?
|
bag>=? bag>?
|
||||||
char-ci<? char-ci=?
|
bag? begin
|
||||||
char-ci>=? char-ci>?
|
binary-port? boolean-hash
|
||||||
char-downcase char-foldcase
|
boolean=? boolean?
|
||||||
char-hash char-lower-case?
|
box box?
|
||||||
char-numeric? char-ready?
|
break break!
|
||||||
char-set char-set->list
|
bytevector bytevector->generator
|
||||||
char-set->string char-set-adjoin
|
bytevector-append bytevector-copy
|
||||||
char-set-adjoin! char-set-any
|
bytevector-copy! bytevector-length
|
||||||
char-set-complement char-set-complement!
|
bytevector-u8-ref bytevector-u8-set!
|
||||||
char-set-contains? char-set-copy
|
bytevector? caaaar
|
||||||
char-set-count char-set-cursor
|
caaadr caaar
|
||||||
char-set-cursor-next char-set-delete
|
caadar caaddr
|
||||||
char-set-delete! char-set-diff+intersection
|
caadr caar
|
||||||
char-set-diff+intersection! char-set-difference
|
cadaar cadadr
|
||||||
char-set-difference! char-set-every
|
cadar caddar
|
||||||
char-set-filter char-set-filter!
|
cadddr caddr
|
||||||
char-set-fold char-set-for-each
|
cadr call-with-current-continuation
|
||||||
char-set-hash char-set-intersection
|
call-with-input-file call-with-output-file
|
||||||
char-set-intersection! char-set-map
|
call-with-port call-with-values
|
||||||
char-set-ref char-set-size
|
call/cc car
|
||||||
char-set-unfold char-set-unfold!
|
car+cdr case
|
||||||
char-set-union char-set-union!
|
case-lambda cdaaar
|
||||||
char-set-xor char-set-xor!
|
cdaadr cdaar
|
||||||
char-set:ascii char-set:blank
|
cdadar cdaddr
|
||||||
char-set:digit char-set:empty
|
cdadr cdar
|
||||||
char-set:full char-set:graphic
|
cddaar cddadr
|
||||||
char-set:hex-digit char-set:iso-control
|
cddar cdddar
|
||||||
char-set:letter char-set:letter+digit
|
cddddr cdddr
|
||||||
char-set:lower-case char-set:printing
|
cddr cdr
|
||||||
char-set:punctuation char-set:symbol
|
ceiling char->integer
|
||||||
char-set:title-case char-set:upper-case
|
char-alphabetic? char-ci-hash
|
||||||
char-set:whitespace char-set<=
|
char-ci<=? char-ci<?
|
||||||
char-set= char-upcase
|
char-ci=? char-ci>=?
|
||||||
char-upper-case? char-whitespace?
|
char-ci>? char-downcase
|
||||||
char<=? char<?
|
char-foldcase char-hash
|
||||||
char=? char>=?
|
char-lower-case? char-numeric?
|
||||||
char>? char?
|
char-ready? char-set
|
||||||
circular-list circular-list?
|
char-set->list char-set->string
|
||||||
close-input-port close-output-port
|
char-set-adjoin char-set-adjoin!
|
||||||
close-port
|
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
|
command-line comparator-check-type
|
||||||
comparator-equality-predicate comparator-hash
|
comparator-equality-predicate comparator-hash
|
||||||
comparator-hash-function comparator-hashable?
|
comparator-hash-function comparator-hashable?
|
||||||
comparator-if<=> comparator-ordered?
|
comparator-if<=> comparator-ordered?
|
||||||
comparator-ordering-predicate comparator-register-default!
|
comparator-ordering-predicate comparator-register-default!
|
||||||
comparator-test-type comparator-type-test-predicate
|
comparator-test-type comparator-type-test-predicate
|
||||||
comparator?
|
comparator? complex?
|
||||||
complex? concatenate
|
concatenate concatenate!
|
||||||
concatenate! cond
|
cond cond-expand
|
||||||
cond-expand cons
|
cons cons*
|
||||||
cons*
|
cos count
|
||||||
cos
|
current-error-port current-input-port
|
||||||
count
|
current-jiffy current-output-port
|
||||||
current-error-port
|
|
||||||
current-input-port current-jiffy
|
|
||||||
current-output-port
|
|
||||||
current-second default-hash
|
current-second default-hash
|
||||||
define
|
define define-record-type
|
||||||
define-record-type define-syntax
|
define-stream define-syntax
|
||||||
define-values delay
|
define-values delay
|
||||||
delay-force delete
|
delay-force delete
|
||||||
delete! delete-duplicates
|
delete! delete-duplicates
|
||||||
delete-duplicates! delete-file
|
delete-duplicates! delete-file
|
||||||
denominator
|
denominator digit-value
|
||||||
digit-value display
|
display do
|
||||||
do dotted-list?
|
dotted-list? drop
|
||||||
drop drop-right
|
drop-right drop-right!
|
||||||
drop-right! drop-while
|
drop-while dynamic-wind
|
||||||
dynamic-wind eighth
|
eighth else
|
||||||
else emergency-exit
|
emergency-exit end-of-char-set?
|
||||||
end-of-char-set?
|
environment eof-object
|
||||||
environment
|
eof-object? ephemeron-broken?
|
||||||
eof-object eof-object?
|
ephemeron-datum ephemeron-key
|
||||||
ephemeron-broken? ephemeron-key
|
ephemeron? eq?
|
||||||
ephemeron-datum ephemeron?
|
equal? eqv?
|
||||||
eq? equal?
|
|
||||||
eqv?
|
|
||||||
error eval
|
error eval
|
||||||
even? every
|
even? every
|
||||||
exact
|
exact exact-integer-sqrt
|
||||||
exact-integer-sqrt
|
exact-integer? exact?
|
||||||
exact-integer?
|
|
||||||
exact?
|
|
||||||
exit exp
|
exit exp
|
||||||
expt features
|
expt features
|
||||||
fifth file-error?
|
fifth file-error?
|
||||||
file-exists?
|
file-exists? filter
|
||||||
filter filter!
|
filter! filter-map
|
||||||
filter-map find
|
find find-tail
|
||||||
find-tail
|
|
||||||
finite? first
|
finite? first
|
||||||
floor floor-quotient
|
floor floor-quotient
|
||||||
floor-remainder floor/
|
floor-remainder floor/
|
||||||
flush-output-port
|
flush-output-port fold
|
||||||
fold fold-right
|
fold-right for-each
|
||||||
for-each force
|
force fourth
|
||||||
fourth gappend
|
gappend gcd
|
||||||
gcd
|
|
||||||
gcombine gcons*
|
gcombine gcons*
|
||||||
gdelete gdelete-neighbor-dups
|
gdelete gdelete-neighbor-dups
|
||||||
gdrop gdrop-while
|
gdrop gdrop-while
|
||||||
generator
|
generator generator->ideque
|
||||||
generator->list generator->reverse-list
|
generator->list generator->lseq
|
||||||
generator->string generator->vector
|
generator->reverse-list generator->string
|
||||||
generator->vector! generator-any
|
generator->vector generator->vector!
|
||||||
generator-count generator-every
|
generator-any generator-count
|
||||||
generator-find generator-fold
|
generator-every generator-find
|
||||||
generator-for-each generator-unfold
|
generator-fold generator-for-each
|
||||||
get-environment-variable get-environment-variables
|
generator-unfold get-environment-variable
|
||||||
get-output-bytevector get-output-string
|
get-environment-variables get-output-bytevector
|
||||||
gfilter gindex
|
get-output-string gfilter
|
||||||
gremove gselect
|
gindex gremove
|
||||||
gtake gtake-while
|
gselect gtake
|
||||||
gtree->itree gtree->tree
|
gtake-while gtree->itree
|
||||||
guard hash
|
gtree->tree guard
|
||||||
hash-bound hash-by-identity
|
hash hash-bound
|
||||||
hash-salt hash-table
|
hash-by-identity hash-salt
|
||||||
hash-table->alist hash-table-clear!
|
hash-table hash-table->alist
|
||||||
hash-table-contains? hash-table-copy
|
hash-table-clear! hash-table-contains?
|
||||||
hash-table-count hash-table-delete!
|
hash-table-copy hash-table-count
|
||||||
hash-table-difference! hash-table-empty-copy
|
hash-table-delete! hash-table-difference!
|
||||||
hash-table-empty? hash-table-entries
|
hash-table-empty-copy hash-table-empty?
|
||||||
hash-table-equivalence-function hash-table-exists?
|
hash-table-entries hash-table-equivalence-function
|
||||||
hash-table-find hash-table-fold
|
hash-table-exists? hash-table-find
|
||||||
hash-table-for-each hash-table-hash-function
|
hash-table-fold hash-table-for-each
|
||||||
hash-table-intern! hash-table-intersection!
|
hash-table-hash-function hash-table-intern!
|
||||||
hash-table-keys hash-table-map
|
hash-table-intersection! hash-table-keys
|
||||||
hash-table-map! hash-table-map->list
|
hash-table-map hash-table-map!
|
||||||
hash-table-merge! hash-table-mutable?
|
hash-table-map->list hash-table-merge!
|
||||||
hash-table-pop! hash-table-prune!
|
hash-table-mutable? hash-table-pop!
|
||||||
hash-table-ref hash-table-ref/default
|
hash-table-prune! hash-table-ref
|
||||||
hash-table-set! hash-table-size
|
hash-table-ref/default hash-table-set!
|
||||||
hash-table-unfold hash-table-union!
|
hash-table-size hash-table-unfold
|
||||||
hash-table-update! hash-table-update!/default
|
hash-table-union! hash-table-update!
|
||||||
hash-table-values hash-table-walk
|
hash-table-update!/default hash-table-values
|
||||||
hash-table-xor! hash-table=?
|
hash-table-walk hash-table-xor!
|
||||||
hash-table?
|
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
|
if ilist->list
|
||||||
ilist-comparator ilist-tail
|
ilist-comparator ilist-tail
|
||||||
imag-part
|
imag-part include
|
||||||
include include-ci
|
include-ci inexact
|
||||||
inexact
|
|
||||||
inexact? infinite?
|
inexact? infinite?
|
||||||
input-port-open? input-port?
|
input-port-open? input-port?
|
||||||
integer->char integer?
|
integer->char integer?
|
||||||
interaction-environment iota
|
interaction-environment iota
|
||||||
ipair->pair ipair-comparator
|
ipair->pair ipair-comparator
|
||||||
iq
|
iq itree->tree
|
||||||
itree->tree
|
|
||||||
jiffies-per-second lambda
|
jiffies-per-second lambda
|
||||||
last last-pair
|
last last-pair
|
||||||
lcm
|
lcm length
|
||||||
length
|
|
||||||
length+ let
|
length+ let
|
||||||
let* let*-values
|
let* let*-values
|
||||||
let-syntax
|
let-syntax let-values
|
||||||
let-values letrec
|
letrec letrec*
|
||||||
letrec* letrec-syntax
|
letrec-syntax list
|
||||||
list list->char-set
|
list->bag list->bag!
|
||||||
list->char-set! list->generator
|
list->char-set list->char-set!
|
||||||
list->ilist list->string
|
list->generator list->ideque
|
||||||
list->vector list-copy
|
list->ilist list->rlist
|
||||||
list-delete-neighbor-dups list-delete-neighbor-dups!
|
list->set list->set
|
||||||
list-index list-merge
|
list->set! list->set!
|
||||||
list-merge! list-queue
|
list->stream list->string
|
||||||
list-queue-add-back! list-queue-add-front!
|
list->text list->vector
|
||||||
list-queue-append list-queue-append!
|
list-copy list-delete-neighbor-dups
|
||||||
list-queue-back list-queue-concatenate
|
list-delete-neighbor-dups! list-index
|
||||||
list-queue-copy list-queue-empty?
|
list-merge list-merge!
|
||||||
list-queue-first-last list-queue-for-each
|
list-queue list-queue-add-back!
|
||||||
list-queue-front list-queue-list
|
list-queue-add-front! list-queue-append
|
||||||
list-queue-map list-queue-map!
|
list-queue-append! list-queue-back
|
||||||
list-queue-remove-all! list-queue-remove-back!
|
list-queue-concatenate list-queue-copy
|
||||||
list-queue-remove-front! list-queue-set-list!
|
list-queue-empty? list-queue-first-last
|
||||||
list-queue-unfold list-queue-unfold-right
|
list-queue-for-each list-queue-front
|
||||||
list-queue? list-ref
|
list-queue-list list-queue-map
|
||||||
list-set! list-sort
|
list-queue-map! list-queue-remove-all!
|
||||||
list-sort! list-sorted?
|
list-queue-remove-back! list-queue-remove-front!
|
||||||
list-stable-sort list-stable-sort!
|
list-queue-set-list! list-queue-unfold
|
||||||
list-tabulate list-tail
|
list-queue-unfold-right list-queue?
|
||||||
list= list?
|
list-ref list-set!
|
||||||
load
|
list-sort list-sort!
|
||||||
log
|
list-sorted? list-stable-sort
|
||||||
lset-adjoin
|
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-diff+intersection lset-diff+intersection!
|
||||||
lset-difference lset-difference!
|
lset-difference lset-difference!
|
||||||
lset-intersection lset-intersection!
|
lset-intersection lset-intersection!
|
||||||
|
@ -274,12 +339,10 @@
|
||||||
lset-xor lset-xor!
|
lset-xor lset-xor!
|
||||||
lset<= lset=
|
lset<= lset=
|
||||||
magnitude make-bytevector
|
magnitude make-bytevector
|
||||||
make-comparator
|
make-comparator make-coroutine-generator
|
||||||
make-coroutine-generator make-default-comparator
|
make-default-comparator make-ephemeron
|
||||||
make-ephemeron
|
|
||||||
make-eq-comparator make-equal-comparator
|
make-eq-comparator make-equal-comparator
|
||||||
make-eqv-comparator
|
make-eqv-comparator make-for-each-generator
|
||||||
make-for-each-generator
|
|
||||||
make-hash-table make-icar-comparator
|
make-hash-table make-icar-comparator
|
||||||
make-icdr-comparator make-improper-ilist-comparator
|
make-icdr-comparator make-improper-ilist-comparator
|
||||||
make-iota-generator make-list
|
make-iota-generator make-list
|
||||||
|
@ -287,106 +350,223 @@
|
||||||
make-pair-comparator make-parameter
|
make-pair-comparator make-parameter
|
||||||
make-polar make-promise
|
make-polar make-promise
|
||||||
make-range-generator make-rectangular
|
make-range-generator make-rectangular
|
||||||
make-string
|
make-rlist make-string
|
||||||
make-unfold-generator make-vector
|
make-text make-unfold-generator
|
||||||
make-vector-comparator map
|
make-vector make-vector-comparator
|
||||||
map! map-in-order
|
map map!
|
||||||
max member
|
map-in-order max
|
||||||
memq memv
|
member memq
|
||||||
min modulo
|
memv min
|
||||||
nan? negative?
|
modulo nan?
|
||||||
newline ninth
|
negative? newline
|
||||||
not not-ipair?
|
ninth not
|
||||||
not-pair?
|
not-ipair? not-pair?
|
||||||
null-list? null?
|
null-list? null?
|
||||||
number->string number-hash
|
number->string number-hash
|
||||||
number? numerator
|
number? numerator
|
||||||
odd?
|
odd? open-binary-input-file
|
||||||
open-binary-input-file open-binary-output-file
|
open-binary-output-file open-input-bytevector
|
||||||
open-input-bytevector open-input-file
|
open-input-file open-input-string
|
||||||
open-input-string
|
|
||||||
open-output-bytevector open-output-file
|
open-output-bytevector open-output-file
|
||||||
open-output-string
|
open-output-string or
|
||||||
or output-port-open?
|
output-port-open? output-port?
|
||||||
output-port? pair->ipair
|
pair->ipair pair-fold
|
||||||
pair-fold pair-fold-right
|
pair-fold-right pair-for-each
|
||||||
pair-for-each
|
pair? parameterize
|
||||||
pair?
|
partition partition!
|
||||||
parameterize partition
|
peek-char peek-u8
|
||||||
partition! peek-char
|
port->stream port?
|
||||||
peek-u8
|
positive? procedure?
|
||||||
port? positive?
|
|
||||||
procedure?
|
|
||||||
promise? proper-list?
|
promise? proper-list?
|
||||||
quasiquote quote
|
quasiquote quote
|
||||||
quotient raise
|
quotient raise
|
||||||
raise-continuable
|
raise-continuable rappend
|
||||||
rational? rationalize
|
rational? rationalize
|
||||||
read read-bytevector
|
rcaaaar rcaaadr
|
||||||
read-bytevector! read-char
|
rcaaar rcaadar
|
||||||
read-error? read-line
|
rcaaddr rcaadr
|
||||||
read-string read-u8
|
rcaar rcadaar
|
||||||
real-part
|
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
|
real? reduce
|
||||||
reduce-right
|
reduce-right remainder
|
||||||
remainder
|
|
||||||
remove remove!
|
remove remove!
|
||||||
replace-icar replace-icdr
|
replace-icar replace-icdr
|
||||||
reverse reverse!
|
reverse reverse!
|
||||||
reverse-list->vector reverse-vector->generator
|
reverse-list->text reverse-list->vector
|
||||||
reverse-vector->list
|
reverse-vector->generator reverse-vector->list
|
||||||
round
|
rfor-each rlength
|
||||||
second set!
|
rlist rlist->list
|
||||||
set-box! set-car!
|
rlist-ref rlist-ref/update
|
||||||
set-cdr!
|
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
|
seventh sin
|
||||||
sixth
|
sixth span
|
||||||
span
|
|
||||||
span! split-at
|
span! split-at
|
||||||
split-at! sqrt
|
split-at! sqrt
|
||||||
square string
|
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->char-set string->char-set!
|
||||||
string->generator string->list
|
string->generator string->list
|
||||||
string->number string->symbol
|
string->number string->symbol
|
||||||
string->utf8 string->vector
|
string->text string->utf8
|
||||||
string-append string-ci-hash
|
string->vector string-append
|
||||||
string-ci<=? string-ci<?
|
string-ci-hash string-ci<=?
|
||||||
string-ci=? string-ci>=?
|
string-ci<? string-ci=?
|
||||||
string-ci>?
|
string-ci>=? string-ci>?
|
||||||
string-copy string-copy!
|
string-copy string-copy!
|
||||||
string-downcase string-fill!
|
string-downcase string-fill!
|
||||||
string-foldcase string-for-each
|
string-foldcase string-for-each
|
||||||
string-hash
|
string-hash string-length
|
||||||
string-length string-map
|
string-map string-ref
|
||||||
string-ref string-set!
|
string-set! string-upcase
|
||||||
string-upcase
|
|
||||||
string<=? string<?
|
string<=? string<?
|
||||||
string=? string>=?
|
string=? string>=?
|
||||||
string>? string?
|
string>? string?
|
||||||
substring
|
substring subtext
|
||||||
symbol->string symbol-hash
|
subtextual symbol->string
|
||||||
symbol=? symbol?
|
symbol-hash symbol=?
|
||||||
syntax-error
|
symbol? syntax-error
|
||||||
syntax-rules
|
syntax-rules take
|
||||||
take
|
|
||||||
take! take-right
|
take! take-right
|
||||||
take-while take-while!
|
take-while take-while!
|
||||||
tan tenth
|
tan tenth
|
||||||
textual-port? third
|
text text-length
|
||||||
tree->itree
|
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 truncate-quotient
|
||||||
truncate-remainder truncate/
|
truncate-remainder truncate/
|
||||||
u8-ready?
|
u8-ready? ucs-range->char-set
|
||||||
ucs-range->char-set ucs-range->char-set!
|
ucs-range->char-set! unbox
|
||||||
unbox unfold
|
unfold unfold-right
|
||||||
unfold-right unless
|
unless unquote
|
||||||
unquote unquote-splicing
|
unquote-splicing unzip1
|
||||||
unzip1 unzip2
|
unzip2 unzip3
|
||||||
unzip3 unzip4
|
unzip4 unzip5
|
||||||
unzip5 utf8->string
|
utf16->text utf16be->text
|
||||||
values vector
|
utf16le->text utf8->string
|
||||||
vector->generator vector->list
|
utf8->text values
|
||||||
vector->string vector-any
|
vector vector->generator
|
||||||
|
vector->list vector->string
|
||||||
|
vector->text vector-any
|
||||||
vector-append vector-append-subvectors
|
vector-append vector-append-subvectors
|
||||||
vector-binary-search vector-concatenate
|
vector-binary-search vector-concatenate
|
||||||
vector-copy vector-copy!
|
vector-copy vector-copy!
|
||||||
|
@ -410,13 +590,11 @@
|
||||||
vector-swap! vector-unfold
|
vector-swap! vector-unfold
|
||||||
vector-unfold! vector-unfold-right
|
vector-unfold! vector-unfold-right
|
||||||
vector-unfold-right! vector=
|
vector-unfold-right! vector=
|
||||||
vector?
|
vector? when
|
||||||
when with-exception-handler
|
with-exception-handler with-input-from-file
|
||||||
with-input-from-file
|
|
||||||
with-output-to-file write
|
with-output-to-file write
|
||||||
write-bytevector write-char
|
write-bytevector write-char
|
||||||
write-string write-u8
|
write-string write-u8
|
||||||
xcons
|
xcons zero?
|
||||||
zero?
|
|
||||||
zip
|
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