How to visualise arbitrary tree?
for example:
(define T1 \'(and (or x1 x2)(or x3 x4 x5)))
or one generated with:
(define fun
I think improvements can be made to assefamaru's answer -
#f
tree-layout
of op
and recursively apply draw
to args
tree-layout
of atom a
Numbered lines above correspond to comments below -
(define (my-node a)
(cc-superimpose
(disk 30 #:color "white")
(text (symbol->string a))))
(define (draw atom->pict a)
(cond ((null? a) #f) ;; 1
((list? a) (match a ;; 2
((cons op args)
(apply tree-layout
#:pict (atom->pict op)
(map (curry draw atom->pict) args)))
(_ #f)))
(else (tree-layout #:pict (atom->pict a))))) ;; 3
(define my-tree
'(or (if A1 (and A1 (not (if D1 (and A0 A0) (or A0 A0)))) (or A0 A0)) D0))
(naive-layered (draw my-node my-tree))