(load "chez-init.ss") ;;; from EOPL2, page 46 (define-datatype bintree bintree? [leaf-node (datum number?)] [interior-node (key symbol?) (left-tree bintree?) (right-tree bintree?)]) ;;; from EOPL2, page 46 (define leaf-sum (lambda (t) (cases bintree t [leaf-node (x) x] [interior-node (key left right) (+ (leaf-sum left) (leaf-sum right))]))) ;;; Let's create some sample data: (define t1 (leaf-node 3)) (define t2 (leaf-node 4)) (define t3 (interior-node 'a t1 t2)) (define t4 (interior-node 'b t3 (leaf-node 4)))