generalize RB-Tree and make wrapper functions to use as a set or map
This commit is contained in:
73
rb_test.kp
73
rb_test.kp
@@ -1,30 +1,49 @@
|
||||
(with_import "./rb.kp"
|
||||
(let (
|
||||
first empty
|
||||
_ (println first " contains? " 1 " ? " (contains? first 1))
|
||||
second (insert first 1)
|
||||
_ (println second " contains? " 1 " ? " (contains? second 1))
|
||||
third (insert second 2)
|
||||
_ (println third " contains? " 1 " ? " (contains? third 1))
|
||||
_ (println third " contains? " 2 " ? " (contains? third 2))
|
||||
fourth (insert third 3)
|
||||
_ (println fourth " contains? " 1 " ? " (contains? fourth 1))
|
||||
_ (println fourth " contains? " 2 " ? " (contains? fourth 2))
|
||||
_ (println fourth " contains? " 3 " ? " (contains? fourth 3))
|
||||
_ (println fourth " contains? " 4 " ? " (contains? fourth 4))
|
||||
fifth (delete fourth 1)
|
||||
_ (println fifth " contains? " 1 " ? " (contains? fifth 1))
|
||||
_ (println fifth " contains? " 2 " ? " (contains? fifth 2))
|
||||
_ (println fifth " contains? " 3 " ? " (contains? fifth 3))
|
||||
_ (println fifth " contains? " 4 " ? " (contains? fifth 4))
|
||||
sixth (delete fifth 3)
|
||||
_ (println sixth " contains? " 1 " ? " (contains? sixth 1))
|
||||
_ (println sixth " contains? " 2 " ? " (contains? sixth 2))
|
||||
_ (println sixth " contains? " 3 " ? " (contains? sixth 3))
|
||||
_ (println sixth " contains? " 4 " ? " (contains? sixth 4))
|
||||
seventh (delete sixth 2)
|
||||
_ (println seventh " contains? " 1 " ? " (contains? seventh 1))
|
||||
_ (println seventh " contains? " 2 " ? " (contains? seventh 2))
|
||||
_ (println seventh " contains? " 3 " ? " (contains? seventh 3))
|
||||
_ (println seventh " contains? " 4 " ? " (contains? seventh 4))
|
||||
first set-empty
|
||||
_ (println first " set-contains? " 1 " ? " (set-contains? first 1))
|
||||
second (set-insert first 1)
|
||||
_ (println second " set-contains? " 1 " ? " (set-contains? second 1))
|
||||
third (set-insert second 2)
|
||||
_ (println third " set-contains? " 1 " ? " (set-contains? third 1))
|
||||
_ (println third " set-contains? " 2 " ? " (set-contains? third 2))
|
||||
fourth (set-insert third 3)
|
||||
_ (println fourth " set-contains? " 1 " ? " (set-contains? fourth 1))
|
||||
_ (println fourth " set-contains? " 2 " ? " (set-contains? fourth 2))
|
||||
_ (println fourth " set-contains? " 3 " ? " (set-contains? fourth 3))
|
||||
_ (println fourth " set-contains? " 4 " ? " (set-contains? fourth 4))
|
||||
fifth (set-remove fourth 1)
|
||||
_ (println fifth " set-contains? " 1 " ? " (set-contains? fifth 1))
|
||||
_ (println fifth " set-contains? " 2 " ? " (set-contains? fifth 2))
|
||||
_ (println fifth " set-contains? " 3 " ? " (set-contains? fifth 3))
|
||||
_ (println fifth " set-contains? " 4 " ? " (set-contains? fifth 4))
|
||||
sixth (set-remove fifth 3)
|
||||
_ (println sixth " set-contains? " 1 " ? " (set-contains? sixth 1))
|
||||
_ (println sixth " set-contains? " 2 " ? " (set-contains? sixth 2))
|
||||
_ (println sixth " set-contains? " 3 " ? " (set-contains? sixth 3))
|
||||
_ (println sixth " set-contains? " 4 " ? " (set-contains? sixth 4))
|
||||
seventh (set-remove sixth 2)
|
||||
_ (println seventh " set-contains? " 1 " ? " (set-contains? seventh 1))
|
||||
_ (println seventh " set-contains? " 2 " ? " (set-contains? seventh 2))
|
||||
_ (println seventh " set-contains? " 3 " ? " (set-contains? seventh 3))
|
||||
_ (println seventh " set-contains? " 4 " ? " (set-contains? seventh 4))
|
||||
|
||||
first map-empty
|
||||
_ (println first " map-contains-key? " 1 " ? " (map-contains-key? first 1))
|
||||
second (map-insert first 1 "hello")
|
||||
_ (println second " map-contains-key? " 1 " ? " (map-contains-key? second 1))
|
||||
_ (println second " map-get " 1 " ? " (map-get second 1))
|
||||
third (map-insert second 1 "goodbye")
|
||||
_ (println third " map-contains-key? " 1 " ? " (map-contains-key? third 1))
|
||||
_ (println third " map-get " 1 " ? " (map-get third 1))
|
||||
fourth (map-insert third 2 "hmmm")
|
||||
_ (println fourth " map-contains-key? " 2 " ? " (map-contains-key? fourth 2))
|
||||
_ (println fourth " map-get " 2 " ? " (map-get fourth 2))
|
||||
_ (println fourth " map-contains-key? " 1 " ? " (map-contains-key? fourth 1))
|
||||
_ (println fourth " map-get " 1 " ? " (map-get fourth 1))
|
||||
_ (println fourth " map-contains-key? " 3 " ? " (map-contains-key? fourth 3))
|
||||
_ (println fourth " map-get-or-default " 3 " 'hi ? " (map-get-or-default fourth 3 'hi))
|
||||
_ (println fourth " map-get-with-default " 3 " (lambda () 'bye) ? " (map-get-with-default fourth 3 (lambda () 'bye)))
|
||||
fifth (map-remove fourth 2)
|
||||
_ (println fifth " map-contains-key? " 2 " ? " (map-contains-key? fifth 2))
|
||||
) nil))
|
||||
|
||||
Reference in New Issue
Block a user