summaryrefslogtreecommitdiffstats
path: root/srfi/225.sld
diff options
context:
space:
mode:
authorGravatar Arvydas Silanskas 2021-08-16 23:41:17 +0300
committerGravatar Arvydas Silanskas 2021-08-16 23:41:17 +0300
commite2ffca246692c28222394ce4a927cf61a7f16bc6 (patch)
treec21b90d96db28bb944d9e5a6f64ca8e5936e6045 /srfi/225.sld
parenttypos (diff)
work
Diffstat (limited to 'srfi/225.sld')
-rw-r--r--srfi/225.sld179
1 files changed, 179 insertions, 0 deletions
diff --git a/srfi/225.sld b/srfi/225.sld
new file mode 100644
index 0000000..c009606
--- /dev/null
+++ b/srfi/225.sld
@@ -0,0 +1,179 @@
+(define-library
+ (srfi 225)
+
+ ;; imports
+ (import (scheme base)
+ (scheme case-lambda)
+ (scheme write)
+ (srfi 1)
+ (srfi 128))
+
+ (cond-expand
+ ((library (srfi 145)) (import (srfi 145)))
+ (else (include "assumptions.scm")))
+
+ (cond-expand
+ (kawa (import (prefix (srfi 69 basic-hash-tables) t69:)))
+ (guile (import (prefix (srfi srfi-69) t69:)))
+ ((library (srfi 69)) (import (prefix (srfi 69) t69:)))
+ (else))
+
+ (cond-expand
+ (guile)
+ ((library (srfi 125)) (import (prefix (srfi 125) t125:)))
+ (else))
+
+ (cond-expand
+ (guile)
+ ((library (srfi 126)) (import (srfi 126)))
+ (else))
+
+ ;; exports
+ (export
+
+ ;; constructor
+ make-dictionary
+
+ ;; predicates
+ dictionary?
+ dict-empty?
+ dict-contains?
+
+ ;; lookup
+ dict-ref
+ dict-ref/default
+
+ ;; mutation
+ dict-set
+ dict-set!
+ dict-adjoin
+ dict-adjoin!
+ dict-delete
+ dict-delete!
+ dict-delete-all
+ dict-delete-all!
+ dict-replace
+ dict-replace!
+ dict-intern
+ dict-intern!
+ dict-update
+ dict-update!
+ dict-update/default
+ dict-update/default!
+ dict-pop
+ dict-pop!
+ dict-map
+ dict-map!
+ dict-filter
+ dict-filter!
+ dict-remove
+ dict-remove!
+ dict-search
+ dict-search!
+
+ ;; whole dictionary
+ dict-copy
+ dict-size
+ dict-for-each
+ dict-count
+ dict-any
+ dict-every
+ dict-keys
+ dict-values
+ dict-entries
+ dict-fold
+ dict-map->list
+ dict->alist
+ dict-comparator
+
+ ;; dictionary type descriptors
+ dtd?
+ make-dtd
+ dtd
+ make-modified-dtd
+ make-alist-dtd
+ dtd-ref
+
+ ;; exceptions
+ dictionary-error?
+ dictionary-message
+ dictionary-irritants
+
+ ;; proc indeces
+ make-dictionary-index
+ dictionary?-index
+ dict-empty?-index
+ dict-contains?-index
+ dict-ref-index
+ dict-ref/default-index
+ dict-set-index
+ dict-set!-index
+ dict-adjoin-index
+ dict-adjoin!-index
+ dict-delete-index
+ dict-delete!-index
+ dict-delete-all-index
+ dict-delete-all!-index
+ dict-replace-index
+ dict-replace!-index
+ dict-intern-index
+ dict-intern!-index
+ dict-update-index
+ dict-update!-index
+ dict-update/default-index
+ dict-update/default!-index
+ dict-pop-index
+ dict-pop!-index
+ dict-map-index
+ dict-map!-index
+ dict-filter-index
+ dict-filter!-index
+ dict-remove-index
+ dict-remove!-index
+ dict-search-index
+ dict-search!-index
+ dict-copy-index
+ dict-size-index
+ dict-for-each-index
+ dict-count-index
+ dict-any-index
+ dict-every-index
+ dict-keys-index
+ dict-values-index
+ dict-entries-index
+ dict-fold-index
+ dict-map->list-index
+ dict->alist-index
+ dict-comparator-index
+
+ ;; basic DTDs
+ plist-dtd
+ alist-eqv-dtd
+ alist-equal-dtd)
+
+ ;; implementations
+ (include "indexes.scm")
+ (include "externals.scm")
+ (include "default-impl.scm")
+ (include "alist-impl.scm")
+ (include "plist-impl.scm")
+
+ ;; library-dependent DTD exports
+ ;; and implementations
+ ;;
+ ;;srfi-69-dtd
+ ;;hash-table-dtd
+ ;;srfi-126-dtd
+ ;;mapping-dtd
+ ;;hash-mapping-dtd
+ (cond-expand
+ ((library (srfi 69))
+ (include "srfi-69-impl.scm")
+ (export srfi-69-dtd))
+ (else))
+
+ (cond-expand
+ ((library (srfi 125))
+ (include "srfi-125-impl.scm")
+ (export hash-table-dtd))
+ (else)))