                                    
(rplacd (quote evalquote) (quote (expr (lambda nil (prog (x y z
) c (cond ((null (setq x (read))) (return nil))) (setq y (read))
 (cond ((or (eq (cadr x) (quote fexpr)) (eq (cadr x) (quote fsub
r))) (prog2 (print (eval (cons x y))) (go c)))) (setq z nil) a (
cond ((null y) (prog2 (print (eval (cons x z))) (go c)))) (setq 
z (nconc z (list (list (quote quote) (car y))))) (setq y (cdr y)
) (go a)))))) 

(rplacd (quote error) (quote (expr (lambda (l) (prog nil (terpr
i) (print (quote error)) (print l) (terpri) a (cond ((car (cddr 
(execute 640020 0 0))) (go a))) (execute 600004 0 0)))))) 

(rplacd (quote caar) (quote (expr (lambda (x) (car (car x))))))
 

(rplacd (quote cadr) (quote (expr (lambda (x) (car (cdr x))))))
 

(rplacd (quote cdar) (quote (expr (lambda (x) (cdr (car x))))))
 

(rplacd (quote cddr) (quote (expr (lambda (x) (cdr (cdr x))))))
 

(rplacd (quote equal) (quote (expr (lambda (x y) (cond ((atom x
) (cond ((atom y) (eq x y)) (t nil))) ((equal (car x) (car y)) (
equal (cdr x) (cdr y))) (t nil)))))) 

(rplacd (quote define) (quote (fexpr (lambda (l x) (prog nil (s
etq l (car l)) a (cond ((null l) (return (quote endef)))) (print
 (rplacd (caar l) (cons (quote expr) (cdar l)))) (setq l (cdr l)
) (go a)))))) 

(rplacd (quote member) (quote (expr (lambda (x y) (cond ((null 
y) nil) ((equal x (car y)) t) (t (member x (cdr y)))))))) 

(rplacd (quote append) (quote (expr (lambda (x y) (cond ((null 
x) y) (t (cons (car x) (append (cdr x) y)))))))) 

(rplacd (quote deflis) (quote (fexpr (lambda (l a) (prog nil (s
etq l (car l)) b (cond ((null l) (return (quote endef)))) (print
 (rplacd (caar l) (car (cdar l)))) (setq l (cdr l)) (go b)))))) 

(rplacd (quote and) (quote (fexpr (lambda (l a) (prog nil b (co
nd ((null l) (return t)) ((not (eval (car l) a)) (return nil))) 
(setq l (cdr l)) (go b)))))) 

(rplacd (quote or) (quote (fexpr (lambda (l a) (prog nil b (con
d ((null l) (return nil)) ((eval (car l) a) (return t))) (setq l
 (cdr l)) (go b)))))) 

(rplacd (quote not) (quote (expr null))) 

(rplacd (quote prindef) (quote (fexpr (lambda (l a) (prog nil b
 (cond ((null l) (return (quote (stop 105))))) (print (list (quo
te rplacd) (list (quote quote) (car l)) (list (quote quote) (cda
r l)))) (terpri) (setq l (cdr l)) (go b)))))) 

(rplacd (quote system) (quote (expr (lambda nil (eval (cons (qu
ote prindef) functions)))))) 

(rplacd (quote functions) (quote (apval (evalquote error caar c
adr cdar cddr equal define member append deflis and or not prind
ef system functions prog2 remob pair reverse maplist subst nconc
 cset csetq set fix untrace trace tracelist)))) 

(rplacd (quote prog2) (quote (expr (lambda (x y) y)))) 

(rplacd (quote remob) (quote (fexpr (lambda (l a) (prog (q) b (
cond ((null l) (return nil))) (setq q oblist) c (cond ((null q) 
(go d))) ((label x (lambda (y z) (cond ((null y) nil) ((eq (car 
y) z) (prog2 (prog2 (rplaca y (cadr y)) (rplacd y (cddr y))) (go
 d))) (t (x (cdr y) z))))) (car q) (car l)) (setq q (cdr q)) (go
 c) d (setq l (cdr l)) (go b)))))) 

(rplacd (quote pair) (quote (expr (lambda (x y) (cond ((null x)
 nil) (t (cons (cons (car x) (car y)) (pair (cdr x) (cdr y))))))
))) 

(rplacd (quote reverse) (quote (expr (lambda (l) (prog (u v) (s
etq u l) a (cond ((null u) (return v))) (setq v (cons (car u) v)
) (setq u (cdr u)) (go a)))))) 

(rplacd (quote maplist) (quote (expr (lambda (x y) (cond ((null
 x) nil) (t (cons (eval (cons y (cond ((atom (car x)) (list (car
 x))) (t (car x))))) (maplist (cdr x) y)))))))) 

(rplacd (quote subst) (quote (expr (lambda (x y z) (cond ((equa
l y z) x) ((atom z) z) (t (cons (subst x y (car z)) (subst x y (
cdr z))))))))) 

(rplacd (quote nconc) (quote (expr (lambda (x y) (prog (u) (con
d ((null x) (return y))) (setq u x) a (cond ((null (cdr u)) (pro
g2 (rplacd u y) (return x)))) (setq u (cdr u)) (go a)))))) 

(rplacd (quote cset) (quote (expr (lambda (x y) (car (cddr (rpl
acd x (list (quote apval) y)))))))) 

(rplacd (quote csetq) (quote (fexpr (lambda (l a) (car (cddr (r
placd (car l) (list (quote apval) (eval (cadr l) a))))))))) 

(rplacd (quote set) (quote (fexpr (lambda (l a) (eval (list (qu
ote setq) (eval (car l) a) (cadr l)) a))))) 

(rplacd (quote fix) (quote (fexpr (lambda (l a) (rplacd (car (c
ddr l)) (subst (car l) (cadr l) (cdar (cddr l)))))))) 

(rplacd (quote untrace) (quote (fexpr (lambda (l a) (prog (x) b
 (cond ((null l) (return (quote enduntrace)))) (setq x (sassoc (
car l) tracelist (quote (lambda nil (go d))))) (rplacd (car x) (
cddr x)) (csetq tracelist ((label delete1 (lambda (y) (cond ((nu
ll y) nil) ((equal x (car y)) (cdr y)) (t (cons (car y) (delete1
 (cdr y))))))) tracelist)) (print x) d (setq l (cdr l)) (go b)))
))) 

(rplacd (quote trace) (quote (fexpr (lambda (l a) (prog (x n) b
 (cond ((null l) (return (quote endtrace))) ((or (not (eq (cadr 
(car l)) (quote expr))) (sassoc (car l) tracelist (quote (lambda
 nil nil)))) (go y))) (setq x (gensym)) (eval (list (quote defin
e) (list (list x nil)))) (rplacd x (cdar l)) (print (car l)) (cs
etq tracelist (cons (cons (car l) x) tracelist)) (setq n (cadr (
cadr (cdar l)))) (rplacd (car l) (list (quote expr) (list (quote
 lambda) n (list (quote prog) (quote (g69000)) (list (quote cond
) (list (quote (car (cddr (execute 650040 0 0)))) (list (quote r
eturn) (cons x n)))) (list (quote print) (list (quote quote) (li
st (quote entering) (car l)))) (list (quote print) (cons (quote 
list) n)) (list (quote setq) (quote g69000) (cons x n)) (list (q
uote print) (list (quote quote) (list (quote value) (quote of) (
car l)))) (quote (print g69000)) (quote (return g69000)))))) y (
setq l (cdr l)) (go b)))))) 

(rplacd (quote tracelist) (quote (apval nil))) 

(stop 105)                                                                            
