Trees: Non-Leaf Nodes

left top right

(define node-tag "Node")

(define (make-node dist outside on-or-inside)
  ;; MAKE-NODE:
  ;;  (Sch-Num, (Node+Leaf), (Node+Leaf)) -> Node
  (list node-tag dist outside on-or-inside))

(define (is-node? obj)
  (and (pair? obj)
       (eq? (car obj) node-tag)))

(define (node.distance node)
  (list-ref node 1))

(define (node.outside node)
  (list-ref node 2))

(define (node.on-or-in node)
  (list-ref node 3))

Jim Miller W3C