
DEFINE((
 (PRL(LAMBDA(L)(COND((NULL L)NIL)((ATOM L)L)((NULL(CDR L))(CAR L))
 ((NULL(CDDR L))(LIST(TECK(CAR L))(PRL(CADR L))))
 (T(LIST(PRL(CADR L))(TECK(CAR L))(PRL(CADDR L)))) )))
 (TECK(LAMBDA(L)((LAMBDA(K)(COND((NULL K)L)(T(CDR K))))(ASSOC L PRTUT))))
 (POLISH(LAMBDA(L)(COND((NULL L)NIL)((ATOM L)L)((NULL(CDR L))
(POLISH(CAR L)))
 ((NULL(CDDR L))(LIST(TACK(CAR L))(POLISH(CADR L)) ))
 (T(LIST(TACK(CADR L))(POLISH(CAR L))(POLISH(CDDR L)))) )))
 (TACK(LAMBDA(L)((LAMBDA(K)(COND((NULL K)L)(T(CDR K))))(ASSOC L PRTIN))))
))
DEFLIS((
(PRTUT((PLUS.+)(MINUS.-)(TIMES.*)(DIVIDE./)(EXPT.**)))
(PRTIN((+.PLUS)(-.MINUS)(*.TIMES)(/.DIVIDE)(**.EXPT)))
)APVAL)
POLISH((X + Y -((COS(X - Y * Z / U))*(EXP(2 - Y)))+(X ** 4)))
PRL((PLUS(TIMES X(COS(DIVIDE(PLUS X Y)(LN(TIMES 2 (TIMES V Y))))))
   (COS(EXPT 2 X))))

ICLOSE NIL
