Finish BST implementation for mbase usage.

This commit is contained in:
Dominik Pantůček 2023-05-18 14:03:12 +02:00
parent e6a1aee313
commit 209ef27a90

View file

@ -51,6 +51,10 @@
bdict-values
bdict-balance
bdict-filter-pairs
bdict-filter-keys
bdict-filter-values
bdict-tests!
)
@ -270,9 +274,38 @@
(vector->bdict
(bdict->vector d)))
;; Returns a list
(define (bdict-filter d p)
'())
;; Returns a list of key-value pairs matching predicate
(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
(define (bdict-tests!)