;;; MExp.scheme
;;; Copyright Ó 1991 by Xerox Corporation. All rights reserved.
;;; Last changed by Pavel on March 21, 1988 12:49:36 pm PST
(define (expand* expression)
(write expression)
(newline)
(let loop ((exp expression))
(let ((expanded-exp (expand-once exp)))
(cond
((not (eq? exp expanded-exp))
(newline)
(display "=>")
(newline)
(newline)
(write expanded-exp)
(newline)
(loop expanded-exp))))))
(define (mexp)
(display "MExp> ")
(let ((exp (read)))
(cond
((pair? exp)
(expand* exp)
(newline)
(mexp)))))