!(set-env (letrec ((mapcar (lambda (f list) (if (eq list nil) nil (cons (f (car list)) (mapcar f (cdr list)))))) (make-row (lambda (list) (if (eq list nil) nil (let ((cdr (cdr list))) (cons (cons (car list) (car cdr)) (make-row (cdr cdr))))))) (make-tree-aux (lambda (list) (let ((row (make-row list))) (if (eq (cdr row) nil) row (make-tree-aux row))))) (make-tree (lambda (list) (car (make-tree-aux list)))) (reverse-tree (lambda (tree) (if (atom tree) tree (cons (reverse-tree (cdr tree)) (reverse-tree (car tree))))))) (current-env)))