Name: Anonymous 2010-06-25 20:49
apply[fn;a;a] =
[atom[fn] -> [eq[fn;CAR] -> caar[x];
eq[fn;CDR] -> cdar[x];
eq[fn;CONS] -> cons[car[x];card[x]];
eq[fn;ATOM] -> atom[car[x]];
eq[fn;EQ] -> eq[car[x];cadr[x]];
T -> apply[eval[fn;a];x;a]];
eq[car[fn];LAMBDA] -> eval[caddr[fn];pairlis[card[fn];x;a]];
eq[car[fn];LABEL] -> apply[caddr[fn];x;cons[cons[cadr[fn];
caddr[fn]];a]]]
eval[e;a] = [atom[e] - cdr[assoc[e;a]];
atom[car[e]] ->
[eq[car[e],QUOTE] -> cadr[e]];
eq[car[e];COND] -> evcon[cdr[e];a];
T-> apply[eval[fn;a];x;x]];
T -> apply[car[e];evlis[cdr[e];a];a]]
[atom[fn] -> [eq[fn;CAR] -> caar[x];
eq[fn;CDR] -> cdar[x];
eq[fn;CONS] -> cons[car[x];card[x]];
eq[fn;ATOM] -> atom[car[x]];
eq[fn;EQ] -> eq[car[x];cadr[x]];
T -> apply[eval[fn;a];x;a]];
eq[car[fn];LAMBDA] -> eval[caddr[fn];pairlis[card[fn];x;a]];
eq[car[fn];LABEL] -> apply[caddr[fn];x;cons[cons[cadr[fn];
caddr[fn]];a]]]
eval[e;a] = [atom[e] - cdr[assoc[e;a]];
atom[car[e]] ->
[eq[car[e],QUOTE] -> cadr[e]];
eq[car[e];COND] -> evcon[cdr[e];a];
T-> apply[eval[fn;a];x;x]];
T -> apply[car[e];evlis[cdr[e];a];a]]