Finish BST implementation for mbase usage.
This commit is contained in:
parent
e6a1aee313
commit
209ef27a90
1 changed files with 36 additions and 3 deletions
|
@ -51,6 +51,10 @@
|
||||||
bdict-values
|
bdict-values
|
||||||
|
|
||||||
bdict-balance
|
bdict-balance
|
||||||
|
|
||||||
|
bdict-filter-pairs
|
||||||
|
bdict-filter-keys
|
||||||
|
bdict-filter-values
|
||||||
|
|
||||||
bdict-tests!
|
bdict-tests!
|
||||||
)
|
)
|
||||||
|
@ -270,9 +274,38 @@
|
||||||
(vector->bdict
|
(vector->bdict
|
||||||
(bdict->vector d)))
|
(bdict->vector d)))
|
||||||
|
|
||||||
;; Returns a list
|
;; Returns a list of key-value pairs matching predicate
|
||||||
(define (bdict-filter d p)
|
(define (bdict-filter-pairs d p)
|
||||||
'())
|
(bdict-reduce
|
||||||
|
'()
|
||||||
|
(lambda (a k v)
|
||||||
|
(let ((e (p k v)))
|
||||||
|
(if e
|
||||||
|
(cons (cons k v) a)
|
||||||
|
a)))
|
||||||
|
d))
|
||||||
|
|
||||||
|
;; Returns a list of keys pairs matching predicate
|
||||||
|
(define (bdict-filter-keys d p)
|
||||||
|
(bdict-reduce
|
||||||
|
'()
|
||||||
|
(lambda (a k v)
|
||||||
|
(let ((e (p k v)))
|
||||||
|
(if e
|
||||||
|
(cons k a)
|
||||||
|
a)))
|
||||||
|
d))
|
||||||
|
|
||||||
|
;; Returns a list of keys pairs matching predicate
|
||||||
|
(define (bdict-filter-values d p)
|
||||||
|
(bdict-reduce
|
||||||
|
'()
|
||||||
|
(lambda (a k v)
|
||||||
|
(let ((e (p k v)))
|
||||||
|
(if e
|
||||||
|
(cons v a)
|
||||||
|
a)))
|
||||||
|
d))
|
||||||
|
|
||||||
;; Performs module self-tests
|
;; Performs module self-tests
|
||||||
(define (bdict-tests!)
|
(define (bdict-tests!)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue