(rplacd prettyprint ((expr lambda (l) (map l (func (j) (prog (t1 ) (terpri) (prin1 lpar) (prin1 j) (terpri) (printdef (cond ((set q t1 (assoc (quote expr) (cdr j) nil)) t1) ((setq t1 (assoc (quo te fexpr) (cdr j) nil)) t1) (t (quote undefined)))) (prin1 rpar) (terpri))))))) (rplacd printdef ((expr lambda (e) (prog (i iunit iunitl) (setq i 1) (setq iunit (pack (quote (0 0 0)))) (setq iunitl 3) (prin1 iunit) (superprint e) (return nil))))) (rplacd superprint ((expr lambda (e) (cond ((atom e) (prinat e)) (t (prog (ep m) (setq ep e) (prin1 lpar) a (cond ((member (car ep) (quote (and or list plus times cond prog2))) (go pl)) ((eq ( caar ep) (quote lambda)) (go pl)) ((eq (car ep) (quote prog)) (g o pp))) (superprint (car ep)) (setq ep (cdr ep)) (cond ((null ep ) (return (prin1 rpar))) ((atom ep) (go pd))) (prin1 blank) (go a) pk (setq i (sub1 i)) pd (prin1 dot) (prinat ep) (return (prin 1 rpar)) pl (setq i (add1 i)) (superprint (car ep)) pm (setq ep (cdr ep)) (cond ((null ep) (go pj)) ((atom ep) (go pk))) (endlin e) (superprint (car ep)) (go pm) pj (setq i (sub1 i)) (return (p rin1 rpar)) pp (prinat (car ep)) (setq ep (cdr ep)) (setq i (add 1 i)) (cond ((null ep) (go pj)) ((atom ep) (go pk))) (prin1 blan k) (superprint (car ep)) py (setq ep (cdr ep)) (cond ((null ep) (go pj)) ((atom ep) (go pk))) (endline) (cond ((atom (car ep)) ( go pz))) (prin1 iunit) (prin1 iunit) px (setq i (plus i 2)) (sup erprint (car ep)) (setq i (plus i -2)) (go py) pz (prinat (car e p)) (setq m (plus iunitl iunitl (minus (length (unpack (car ep)) )))) aa (setq m (sub1 m)) (prin1 blank) (cond ((greaterp m 0) (g o aa))) (setq ep (cdr ep)) (cond ((null ep) (go pj)) ((atom ep) (go pk)) ((atom (car ep)) (go pz))) (go px))))))) (rplacd endline ((expr lambda nil (prog (j) (setq j i) (terpri) a (cond ((eq j 0) (return nil)) ((greaterp 0 j) (error i))) (pri n1 iunit) (setq j (sub1 j)) (go a))))) (rplacd lpar ((apval..())) (rplacd rpar ((apval..)))) (rplacd blank ((apval.. ))) (rplacd dot ((apval...))) (rplacd prinat ((expr lambda (x) (prog nil (cond ((charp x) (pri n1 overbar))) (prin1 x))))) (rplacd overbar ((apval...))) (rplacd dumpp ((expr lambda (n) (dump n (quote (prettyprint prin tdef superprint endline lpar rpar blank dot prinat overbar dumpp )))))) (stop 15)