eval [ e ; a ] = [ atom [ e ] → assoc [ e ; a ]; atom [ car [ e ]] → [ eq [ car [ e ]; QUOTE ] → cadr [ e ]; eq [ car [ e ]; ATOM ] → atom [ eval [ cadr [ e ]; a ]]; eq [ car [ e ]; EQ ] → [ eval [ cadr [ e ]; a ] = eval [ caddr [ e ]; a ]]; eq [ car [ e ]; COND ] → evcon [ cdr [ e ]; a ]; eq [ car [ e ]; CAR ] → car [ eval [ cadr [ e ]; a ]]; eq [ car [ e ]; CDR ] → cdr [ eval [ cadr [ e ]; a ]]; eq [ car [ e ]; CONS ] → cons [ eval [ cadr [ e ]; a ]; eval [ caddr [ e ]; a ]]; T → eval [ cons [ assoc [ car [ e ]; a ]; evlis [ cdr [ e ]; a ]]; a ]]; eq [ caar [ e ]; LABEL ] → eval [ cons [ caddar [ e ]; cdr [ e ]]; cons [ list [ cadar [ e ]; car [ e ]; a ]]]; eq [ caar [ e ]; LAMBDA ] → eval [ caddar [ e ]; append [ pair [ cadar [ e ]; evlis [ cdr [ e ]; a ]; a ]]] evcon [ c ; a ] = […