summaryrefslogtreecommitdiffstats
path: root/srfi/srfi-125-impl.scm
diff options
context:
space:
mode:
authorGravatar Arvydas Silanskas 2021-08-26 00:12:45 +0300
committerGravatar Arvydas Silanskas 2021-08-26 00:12:45 +0300
commit470b87e3f54d3523d722cf3738d99a8307edd466 (patch)
tree37379026929e274972670f6f36b77bdfa2041a87 /srfi/srfi-125-impl.scm
parentremove old file (diff)
add kawa docker test
Diffstat (limited to 'srfi/srfi-125-impl.scm')
-rw-r--r--srfi/srfi-125-impl.scm183
1 files changed, 92 insertions, 91 deletions
diff --git a/srfi/srfi-125-impl.scm b/srfi/srfi-125-impl.scm
index d735f95..f594f6b 100644
--- a/srfi/srfi-125-impl.scm
+++ b/srfi/srfi-125-impl.scm
@@ -1,160 +1,161 @@
(define hash-table-dtd
(let ()
- (define (t125:make-hash-table* dtd comparator)
- (t125:hash-table comparator))
+ (define (t125-make-hash-table* dtd comparator)
+ ;; make mutable table
+ (t125-hash-table-empty-copy (t125-hash-table comparator)))
- (define (t125:hash-table-set!* dtd table . obj)
- (apply t125:hash-table-set! (cons table obj))
+ (define (t125-hash-table-set!* dtd table . obj)
+ (apply t125-hash-table-set! (cons table obj))
table)
- (define (t125:hash-table-update!* dtd table key updater fail success)
- (t125:hash-table-update! table key updater fail success)
+ (define (t125-hash-table-update!* dtd table key updater fail success)
+ (t125-hash-table-update! table key updater fail success)
table)
- (define (t125:hash-table-update!/default* dtd table key proc default)
- (t125:hash-table-update!/default table key proc default)
+ (define (t125-hash-table-update!/default* dtd table key proc default)
+ (t125-hash-table-update!/default table key proc default)
table)
- (define (t125:hash-table-intern!* dtd table key failure)
- (define val (t125:hash-table-intern! table key failure))
+ (define (t125-hash-table-intern!* dtd table key failure)
+ (define val (t125-hash-table-intern! table key failure))
(values table val))
- (define (t125:hash-table-pop!* dtd table)
- (if (t125:hash-table-empty? table)
+ (define (t125-hash-table-pop!* dtd table)
+ (if (t125-hash-table-empty? table)
(error "popped empty dictionary")
(call-with-values
- (lambda () (t125:hash-table-pop! table))
+ (lambda () (t125-hash-table-pop! table))
(lambda (key value) (values table key value)))))
- (define (t125:hash-table-delete-all!* dtd table keys)
+ (define (t125-hash-table-delete-all!* dtd table keys)
(for-each
(lambda (key)
- (t125:hash-table-delete! table key))
+ (t125-hash-table-delete! table key))
keys)
table)
- (define (t125:hash-table-map!* dtd proc table)
- (t125:hash-table-map! proc table)
+ (define (t125-hash-table-map!* dtd proc table)
+ (t125-hash-table-map! proc table)
table)
- (define (t125:hash-table-filter!* dtd proc table)
- (t125:hash-table-prune!
+ (define (t125-hash-table-filter!* dtd proc table)
+ (t125-hash-table-prune!
(lambda (key value)
(not (proc key value)))
table)
table)
- (define (t125:hash-table-filter* dtd proc table)
+ (define (t125-hash-table-filter* dtd proc table)
(dict-filter! dtd proc (dict-copy dtd table)))
- (define (t125:hash-table-remove!* dtd proc table)
- (t125:hash-table-prune! proc table)
+ (define (t125-hash-table-remove!* dtd proc table)
+ (t125-hash-table-prune! proc table)
table)
- (define (t125:hash-table-remove* dtd proc table)
+ (define (t125-hash-table-remove* dtd proc table)
(dict-remove! dtd proc (dict-copy dtd table)))
- (define (t125:hash-table-search!* dtd table key fail success)
+ (define (t125-hash-table-search!* dtd table key fail success)
(define (handle-success value)
(define (update new-key new-value obj)
(unless (eq? new-key key)
- (t125:hash-table-delete! table key))
- (t125:hash-table-set! table new-key new-value)
+ (t125-hash-table-delete! table key))
+ (t125-hash-table-set! table new-key new-value)
(values table obj))
(define (remove obj)
- (t125:hash-table-delete! table key)
+ (t125-hash-table-delete! table key)
(values table obj))
(success key value update remove))
(define (handle-fail)
(define (ignore obj)
(values table obj))
(define (insert value obj)
- (t125:hash-table-set! table key value)
+ (t125-hash-table-set! table key value)
(values table obj))
(fail insert ignore))
(define default (cons #f #f))
- (t125:hash-table-ref table key handle-fail handle-success))
+ (t125-hash-table-ref table key handle-fail handle-success))
- (define (t125:hash-table-search* dtd table key fail success)
- (t125:hash-table-search!* dtd (dict-copy dtd table) key fail success))
+ (define (t125-hash-table-search* dtd table key fail success)
+ (t125-hash-table-search!* dtd (dict-copy dtd table) key fail success))
- (define (t125:hash-table-comparator* dtd table)
+ (define (t125-hash-table-comparator* dtd table)
(make-comparator (lambda args #t)
- (t125:hash-table-equivalence-function table)
+ (t125-hash-table-equivalence-function table)
#f
- (t125:hash-table-hash-function table)))
+ (t125-hash-table-hash-function table)))
- (define (t125:hash-table-copy* dtd table)
- (t125:hash-table-copy table))
+ (define (t125-hash-table-copy* dtd table)
+ (t125-hash-table-copy table #t))
- (define (t125:hash-table-size* dtd table)
- (t125:hash-table-size table))
+ (define (t125-hash-table-size* dtd table)
+ (t125-hash-table-size table))
- (define (t125:hash-table-for-each* dtd proc table)
- (t125:hash-table-for-each proc table))
+ (define (t125-hash-table-for-each* dtd proc table)
+ (t125-hash-table-for-each proc table))
- (define (t125:hash-table-keys* dtd table)
- (t125:hash-table-keys table))
+ (define (t125-hash-table-keys* dtd table)
+ (t125-hash-table-keys table))
- (define (t125:hash-table-values* dtd table)
- (t125:hash-table-values table))
+ (define (t125-hash-table-values* dtd table)
+ (t125-hash-table-values table))
- (define (t125:hash-table-entries* dtd table)
- (t125:hash-table-entries table))
+ (define (t125-hash-table-entries* dtd table)
+ (t125-hash-table-entries table))
- (define (t125:hash-table-fold* dtd proc knil table)
- (t125:hash-table-fold proc knil table))
+ (define (t125-hash-table-fold* dtd proc knil table)
+ (t125-hash-table-fold proc knil table))
- (define (t125:hash-table-map->list* dtd proc table)
- (t125:hash-table-map->list proc table))
+ (define (t125-hash-table-map->list* dtd proc table)
+ (t125-hash-table-map->list proc table))
- (define (t125:hash-table->alist* dtd table)
- (t125:hash-table->alist table))
+ (define (t125-hash-table->alist* dtd table)
+ (t125-hash-table->alist table))
- (define (t125:hash-table?* dtd table)
- (t125:hash-table? table))
+ (define (t125-hash-table?* dtd table)
+ (t125-hash-table? table))
- (define (t125:hash-table-empty?* dtd table)
- (t125:hash-table-empty? table))
+ (define (t125-hash-table-empty?* dtd table)
+ (t125-hash-table-empty? table))
- (define (t125:hash-table-contains?* dtd table key)
- (t125:hash-table-contains? table key))
+ (define (t125-hash-table-contains?* dtd table key)
+ (t125-hash-table-contains? table key))
- (define (t125:hash-table-ref* dtd table key failure success)
- (t125:hash-table-ref table key failure success))
+ (define (t125-hash-table-ref* dtd table key failure success)
+ (t125-hash-table-ref table key failure success))
- (define (t125:hash-table-ref/default* dtd table key default)
- (t125:hash-table-ref/default table key default))
+ (define (t125-hash-table-ref/default* dtd table key default)
+ (t125-hash-table-ref/default table key default))
(make-dtd
- make-dictionary-id t125:make-hash-table*
- dictionary?-id t125:hash-table?*
- dict-empty?-id t125:hash-table-empty?*
- dict-contains?-id t125:hash-table-contains?*
- dict-ref-id t125:hash-table-ref*
- dict-ref/default-id t125:hash-table-ref/default*
- dict-set!-id t125:hash-table-set!*
- dict-delete-all!-id t125:hash-table-delete-all!*
- dict-intern!-id t125:hash-table-intern!*
- dict-update!-id t125:hash-table-update!*
- dict-update/default!-id t125:hash-table-update!/default*
- dict-pop!-id t125:hash-table-pop!*
- dict-map!-id t125:hash-table-map!*
- dict-filter!-id t125:hash-table-filter!*
- dict-filter-id t125:hash-table-filter*
- dict-remove!-id t125:hash-table-remove!*
- dict-remove-id t125:hash-table-remove*
- dict-search!-id t125:hash-table-search!*
- dict-search-id t125:hash-table-search*
- dict-size-id t125:hash-table-size*
- dict-for-each-id t125:hash-table-for-each*
- dict-keys-id t125:hash-table-keys*
- dict-values-id t125:hash-table-values*
- dict-entries-id t125:hash-table-entries*
- dict-fold-id t125:hash-table-fold*
- dict-map->list-id t125:hash-table-map->list*
- dict->alist-id t125:hash-table->alist*
- dict-comparator-id t125:hash-table-comparator*
- dict-copy-id t125:hash-table-copy*)))
+ make-dictionary-id t125-make-hash-table*
+ dictionary?-id t125-hash-table?*
+ dict-empty?-id t125-hash-table-empty?*
+ dict-contains?-id t125-hash-table-contains?*
+ dict-ref-id t125-hash-table-ref*
+ dict-ref/default-id t125-hash-table-ref/default*
+ dict-set!-id t125-hash-table-set!*
+ dict-delete-all!-id t125-hash-table-delete-all!*
+ dict-intern!-id t125-hash-table-intern!*
+ dict-update!-id t125-hash-table-update!*
+ dict-update/default!-id t125-hash-table-update!/default*
+ dict-pop!-id t125-hash-table-pop!*
+ dict-map!-id t125-hash-table-map!*
+ dict-filter!-id t125-hash-table-filter!*
+ dict-filter-id t125-hash-table-filter*
+ dict-remove!-id t125-hash-table-remove!*
+ dict-remove-id t125-hash-table-remove*
+ dict-search!-id t125-hash-table-search!*
+ dict-search-id t125-hash-table-search*
+ dict-size-id t125-hash-table-size*
+ dict-for-each-id t125-hash-table-for-each*
+ dict-keys-id t125-hash-table-keys*
+ dict-values-id t125-hash-table-values*
+ dict-entries-id t125-hash-table-entries*
+ dict-fold-id t125-hash-table-fold*
+ dict-map->list-id t125-hash-table-map->list*
+ dict->alist-id t125-hash-table->alist*
+ dict-comparator-id t125-hash-table-comparator*
+ dict-copy-id t125-hash-table-copy*)))