diff options
| author | 2025-02-17 14:59:44 -0500 | |
|---|---|---|
| committer | 2025-02-17 14:59:44 -0500 | |
| commit | 98da920c0469304b11aecdd06ab4aec055e783dd (patch) | |
| tree | 74bee72df58ef31a5b12c05815a7b9bb38f97ec9 /mcgoron | |
| parent | change 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.scm | 11 | ||||
| -rw-r--r-- | mcgoron/weight-balanced-trees/srfi/113/sets.sld | 2 |
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 |
