(CALC PUSH POP BINARY UNARY - E N L S D P)›(DEFINEQ CALC '(LAMBDA NIL (PROG (X Y OP STACK) LOOP (POKE 128 0) (TERPRI) (PRINT STACK) (TERPRI) (PRIN1 (QUOTE "Åîôåò> ")) (SETQ IN (READ)) (COND ((# IN) (PUSH IN)) ((MEMBER IN BINARY) (PUSH (APPLY* IN (POP) (POP)))) ((MEMBER IN UNARY) (PUSH (APPLY* IN (POP)))) ((EQ IN (QUOTE Q)) (RETURN)) (T (PRIN1 (QUOTE "ý")))) (GO LOOP)))›)›(DEFINEQ PUSH '(LAMBDA (ITEM) (SETQ STACK (CONS ITEM STACK)))›)›(DEFINEQ POP '(LAMBDA NIL (PROG (X) (SETQ X (CAR STACK)) (SETQ STACK (CDR STACK)) X))›)›(SETQ BINARY '(+ * - / P)›)›(SETQ UNARY '(E L N D S)›)›(DEFINEQ - '(LAMBDA (X Y) (SUB X Y))›)›(DEFINEQ E '(LAMBDA (X) (EXP X))›)›(DEFINEQ N '(LAMBDA (X) (SUB 0 X))›)›(DEFINEQ L '(LAMBDA (X) (LOG X))›)›(DEFINEQ S '(LAMBDA (X) (EXP (/ (LOG X) 2)))›)›(DEFINEQ D '(LAMBDA (X) (PROGN (PUSH X) X))›)›(DEFINEQ P '(LAMBDA (X Y) (EXP (* Y (LOG X))))›)›NIL›