diff --git a/implementations/scheme-chicken/btree.scm b/implementations/scheme-chicken/btree.scm new file mode 100644 index 0000000..a0aa8d7 --- /dev/null +++ b/implementations/scheme-chicken/btree.scm @@ -0,0 +1,62 @@ +(import srfi-1) +(import srfi-12) +(import matchable) + +; Importing srfi-67 did not actually make available symbol-compare. Boo! + +(define (symbolstring a) (symbol->string b))) + +; a BTree is a four-tuple of (name value left right) | () + +(define (btree-get key btree) + (match btree + (() (abort "Key not found.")) + ((k value left right) + (if (eq? key k) + value + (btree-get key (if (symbolstring a) (symbol->string b))) + +; a BTree is a four-tuple of (name value left right) | () + +(define (btree-get key btree) + (match btree + (() (abort "Key not found.")) + ((k value left right) + (if (eq? key k) + value + (btree-get key (if (symbol