summaryrefslogtreecommitdiffstats
path: root/srfi/externals.scm
diff options
context:
space:
mode:
authorGravatar Arvydas Silanskas 2022-06-18 21:38:05 +0300
committerGravatar Arvydas Silanskas 2022-06-18 21:38:05 +0300
commitbfadf39cf69a2e73a34c3ba50d340db3df86ce30 (patch)
tree20a9938ed5319307124d49e71f6b7c3776d16454 /srfi/externals.scm
parentwip (diff)
update implementation
Diffstat (limited to 'srfi/externals.scm')
-rw-r--r--srfi/externals.scm76
1 files changed, 14 insertions, 62 deletions
diff --git a/srfi/externals.scm b/srfi/externals.scm
index d08f4a4..f1045e5 100644
--- a/srfi/externals.scm
+++ b/srfi/externals.scm
@@ -26,38 +26,6 @@
(assume (dto? dto))
(apply (dto-ref-stx dto index) dto args)))))
-;; define mutable and immutable versions of a procedure (such as dict-set! and dict-set)
-;; with appropriate assertion for dict-mutable? value
-;; when dto is first arg, and dict is second arg
-(define-syntax define/dict-proc-pair
- (syntax-rules ()
- ((_ proc-immutable proc-mutable index)
- (begin
- (define (proc-mutable dto dict . args)
- (assume (dto? dto))
- (assume (not ((dto-ref-stx dto dict-pure?-id) dto dict)) index)
- (apply (dto-ref-stx dto index) dto dict args))
- (define (proc-immutable dto dict . args)
- (assume (dto? dto))
- (assume ((dto-ref-stx dto dict-pure?-id) dto dict) index)
- (apply (dto-ref-stx dto index) dto dict args))))))
-
-;; define mutable and immutable versions of a procedure (such as dict-set! and dict-set)
-;; with appropriate assertion for dict-mutable? value
-;; when dto is first arg, and dict is third arg (ie filter, map shape signature)
-(define-syntax define/dict-proc-pair*
- (syntax-rules ()
- ((_ proc-immutable proc-mutable index)
- (begin
- (define (proc-mutable dto proc dict)
- (assume (dto? dto))
- (assume (not ((dto-ref-stx dto dict-pure?-id) dto dict)) index)
- ((dto-ref-stx dto index) dto proc dict))
- (define (proc-immutable dto proc dict)
- (assume (dto? dto))
- (assume ((dto-ref-stx dto dict-pure?-id) dto dict) index)
- ((dto-ref-stx dto index) dto proc dict))))))
-
(define/dict-proc dictionary? dictionary?-id)
(define/dict-proc dict-empty? dict-empty?-id)
(define/dict-proc dict-contains? dict-contains?-id)
@@ -79,12 +47,12 @@
((dto-ref-stx dto dict-ref-id) dto dict key failure success))))
(define/dict-proc dict-ref/default dict-ref/default-id)
-(define/dict-proc-pair dict-set dict-set! dict-set-id)
-(define/dict-proc-pair dict-adjoin dict-adjoin! dict-adjoin-id)
-(define/dict-proc-pair dict-delete dict-delete! dict-delete-id)
-(define/dict-proc-pair dict-delete-all dict-delete-all! dict-delete-all-id)
-(define/dict-proc-pair dict-replace dict-replace! dict-replace-id)
-(define/dict-proc-pair dict-intern dict-intern! dict-intern-id)
+(define/dict-proc dict-set dict-set-id)
+(define/dict-proc dict-adjoin dict-adjoin-id)
+(define/dict-proc dict-delete dict-delete-id)
+(define/dict-proc dict-delete-all dict-delete-all-id)
+(define/dict-proc dict-replace dict-replace-id)
+(define/dict-proc dict-intern dict-intern-id)
(define dict-update
(case-lambda
@@ -98,30 +66,14 @@
((dto dict key updater failure success)
(assume (dto? dto))
- (assume ((dto-ref-stx dto dict-pure?-id) dto dict))
- ((dto-ref-stx dto dict-update-id) dto dict key updater failure success))))
-
-(define dict-update!
- (case-lambda
- ((dto dict key updater)
- (dict-update dto dict key updater
- (lambda () (error "Key not found in dictionary" dict key))
- values))
-
- ((dto dict key updater failure)
- (dict-update dto dict key updater failure values))
-
- ((dto dict key updater failure success)
- (assume (dto? dto))
- (assume (not ((dto-ref-stx dto dict-pure?-id) dto dict)))
((dto-ref-stx dto dict-update-id) dto dict key updater failure success))))
-(define/dict-proc-pair dict-update/default dict-update/default! dict-update/default-id)
-(define/dict-proc-pair dict-pop dict-pop! dict-pop-id)
-(define/dict-proc-pair* dict-map dict-map! dict-map-id)
-(define/dict-proc-pair* dict-filter dict-filter! dict-filter-id)
-(define/dict-proc-pair* dict-remove dict-remove! dict-remove-id)
-(define/dict-proc-pair dict-find-update dict-find-update! dict-find-update-id)
+(define/dict-proc dict-update/default dict-update/default-id)
+(define/dict-proc dict-pop dict-pop-id)
+(define/dict-proc dict-map dict-map-id)
+(define/dict-proc dict-filter dict-filter-id)
+(define/dict-proc dict-remove dict-remove-id)
+(define/dict-proc dict-find-update dict-find-update-id)
(define/dict-proc dict-size dict-size-id)
(define/dict-proc dict-count dict-count-id)
(define/dict-proc dict-any dict-any-id)
@@ -146,8 +98,8 @@
((dto dict start) (dict->generator dto dict start #f))
((dto dict start end) ((dto-ref-stx dto dict->generator-id) dto dict start end))))
-(define/dict-proc-pair dict-set-accumulator dict-set!-accumulator dict-set-accumulator-id)
-(define/dict-proc-pair dict-adjoin-accumulator dict-adjoin!-accumulator dict-adjoin-accumulator-id)
+(define/dict-proc dict-set-accumulator dict-set-accumulator-id)
+(define/dict-proc dict-adjoin-accumulator dict-adjoin-accumulator-id)
(define (dto-ref dto procindex)
(dto-ref-stx dto procindex))
'>-3/+29 2000-11-24Bump up version numbers for release.Gravatar aeb 2-3/+11 2000-11-24Added libraw1394.postinst.in to list of distributed files.Gravatar aeb 3-3/+35 2000-11-23Add ldconfig in deb postinst for Debian policy conformance.Gravatar aeb 2-2/+17 2000-11-23Removed acconfig.h, which wasn't needed for some time.Gravatar aeb 1-13/+0 2000-11-22Added ieee1394.h header.Gravatar aeb 3-1/+38 2000-09-13Fix raw1394_start_iso_write() which uses wrong variable.Gravatar aeb 1-1/+1 2000-09-10Work around compiler warnings for int/ptr casts.Gravatar aeb 6-10/+20 2000-09-10Added control files for Debian packages.Gravatar aeb 6-8/+106 2000-09-01Added missing prototypes for iso send functions.Gravatar aeb 1-0/+7 2000-08-08Added raw1394_get_irm_id().Gravatar aeb 7-7/+39 2000-08-06Added support for isochronous sending.Gravatar aeb 3-0/+35 2000-07-05Added raw1394_reset_bus() call.Gravatar aeb 4-0/+23 2000-06-22- Set library version info in configure.in, use in src/Makefile.am.Gravatar aeb 4-2/+16 2000-06-15Update libtool version number.Gravatar aeb 2-2/+2 2000-06-14Added copyright headers.Gravatar aeb 6-0/+54 2000-06-11Added explicit AC_PROG_INSTALL call.Gravatar aeb 1-0/+1 2000-06-09Fix size of error field.Gravatar aeb 1-2/+2 2000-06-02Modified support for 32/64 bit environments, control struct fields have fixed...Gravatar aeb 7-43/+28 2000-05-28Added support for environments with 64 bit kernel and 32 bit userland.Gravatar aeb 8-7/+45 2000-04-27Fixed missing setting of ext code in raw1394_start_lock()Gravatar aeb 1-0/+1 2000-04-15Fixed lock transaction to actually return response value.Gravatar aeb 3-5/+11 2000-04-12Add userdata functions as news.Gravatar aeb 1-0/+4 2000-04-05Add userdata functions.Gravatar aeb 3-0/+18 2000-03-18Bump version number to 0.6.Gravatar aeb 3-5/+6 2000-03-18Mention byte order change.Gravatar aeb 1-0/+2 2000-03-18Mention SourceForge home.Gravatar aeb 1-1/+5