1 (defun make-tree (entry left right)
2 (list entry left right))
3 (defun make-leaf (entry)
7 (defun set-entry! (tree ent)
9 (defun left-branch (tree)
11 (defun set-let-branch! (tree lb)
12 (setf (cadr tree) lb))
13 (defun right-branch (tree)
15 (defun set-right-branch! (tree lb)
16 (setf (caddr tree) lb))
18 (defun make-record (key data)
24 (defun make-table (&key (<? #'<))
25 (let ((local-table (cons '*head* nil)))
29 (set-tree-root! (node)
30 (setf (cdr local-table) node))
31 (node-lookup (key node)
34 (let* ((cur-entry (entry node))
35 (cur-key (key cur-entry)))
36 (cond ((funcall <? key cur-key)
40 ((funcall <? cur-key key)