;; -*- Mode: Irken -*- (include "lib/core.scm") (datatype tree (:empty) (:node 'a (tree 'a) (tree 'a)) ) (define indent 0 -> #f n -> (begin (print-string " ") (indent (- n 1))) ) (define tree/print d (tree:empty) -> #f d (tree:node val left right) -> (begin (indent d) (tree/print (+ d 1) left) (print val) (print-string "\n") (tree/print (+ d 1) right))) (let ((t (tree:node 5 (tree:node 7 (tree:empty) (tree:node 12 (tree:empty) (tree:empty))) (tree:node 9 (tree:empty) (tree:empty)) ))) (tree/print 0 t) )