aboutsummaryrefslogtreecommitdiffstats
path: root/mcgoron
diff options
context:
space:
mode:
authorGravatar Peter McGoron 2025-02-17 14:59:44 -0500
committerGravatar Peter McGoron 2025-02-17 14:59:44 -0500
commit98da920c0469304b11aecdd06ab4aec055e783dd (patch)
tree74bee72df58ef31a5b12c05815a7b9bb38f97ec9 /mcgoron
parentchange set-disjoint?, test set-intersection (diff)
test set-every, set-delete, and set=?
Diffstat (limited to 'mcgoron')
-rw-r--r--mcgoron/weight-balanced-trees/srfi/113/sets.scm11
-rw-r--r--mcgoron/weight-balanced-trees/srfi/113/sets.sld2
2 files changed, 9 insertions, 4 deletions
diff --git a/mcgoron/weight-balanced-trees/srfi/113/sets.scm b/mcgoron/weight-balanced-trees/srfi/113/sets.scm
index 2fdf0ed..03f5045 100644
--- a/mcgoron/weight-balanced-trees/srfi/113/sets.scm
+++ b/mcgoron/weight-balanced-trees/srfi/113/sets.scm
@@ -105,7 +105,12 @@
(define (set-delete-all set elements)
(let ((cmp (set-element-comparator set)))
- (fold (cut delete cmp <> <>) set elements)))
+ (raw-set
+ cmp
+ (fold (lambda (element node)
+ (delete cmp node element))
+ (get-node set)
+ elements))))
(define set-delete-all! set-delete-all)
(define (set-delete set . elements)
@@ -163,8 +168,8 @@
(define (set-every? predicate set)
(set-find (lambda (x) (not (predicate x)))
set
- (lambda () #f)
- (lambda (x) #t)))
+ (lambda () #t)
+ (lambda (x) #f)))
;;; ;;;;;;;;;;;;;;;;;;;;;;;;
;;; Mapping and folding
diff --git a/mcgoron/weight-balanced-trees/srfi/113/sets.sld b/mcgoron/weight-balanced-trees/srfi/113/sets.sld
index ccc578d..fffb7fa 100644
--- a/mcgoron/weight-balanced-trees/srfi/113/sets.sld
+++ b/mcgoron/weight-balanced-trees/srfi/113/sets.sld
@@ -17,7 +17,7 @@
(import (scheme base)
(scheme case-lambda)
(mcgoron weight-balanced-trees internal)
- (srfi 1) (srfi 26) (srfi 128) (srfi 158))
+ (except (srfi-1) delete) (srfi 26) (srfi 128) (srfi 158))
(export set set-unfold
set? set-contains? set-empty? set-disjoint?
set-member set-element-comparator