diff options
| author | 2025-02-16 23:46:26 -0500 | |
|---|---|---|
| committer | 2025-02-16 23:46:26 -0500 | |
| commit | 99a7c14584dfd3e546740e3e86e25408c761f200 (patch) | |
| tree | 3e348d4b394ae044f4001d6bd91d9d240c5758fb /mcgoron | |
| parent | set-disjoint tests (diff) | |
member, adjoin and find tests
Diffstat (limited to '')
| -rw-r--r-- | mcgoron/weight-balanced-trees/srfi/113/sets.scm | 23 |
1 files changed, 12 insertions, 11 deletions
diff --git a/mcgoron/weight-balanced-trees/srfi/113/sets.scm b/mcgoron/weight-balanced-trees/srfi/113/sets.scm index 768be10..20f01d9 100644 --- a/mcgoron/weight-balanced-trees/srfi/113/sets.scm +++ b/mcgoron/weight-balanced-trees/srfi/113/sets.scm @@ -64,8 +64,8 @@ (define (set-member set element default) (search (set-element-comparator set) - (get-node set) element + (get-node set) (lambda () default))) ;;; ;;;;;;;;;;;;;;;;;;; @@ -118,7 +118,7 @@ ((predicate set default-value transform) (let loop ((queue (list (get-node set)))) (cond - ((null? queue) default-value) + ((null? queue) (default-value)) ((null? (car queue)) (loop (cdr queue))) (else (with-node ((car queue) data ("<" left) (">" right)) (if (predicate data) @@ -330,15 +330,16 @@ (define (set-adjoin-all set elements) (let ((cmp (set-element-comparator set))) - (fold (lambda (new set) - (update cmp - set - new - (lambda (old) old) - (lambda () - (wb-tree-node new '() '())))) - (get-node set) - elements))) + (raw-set + cmp + (fold (lambda (new set) + (update cmp + set + new + (lambda (old) old) + (lambda () (wb-tree-node new '() '())))) + (get-node set) + elements)))) (define (set-replace-all set elements) (let ((cmp (set-element-comparator set))) |
