to rpn if eof? [stop] make "s reverse rl if not empty? :s ~ [ make "r catch "err [eval] pr catch "err [ifelse empty? :s [:r] [(throw "err "error)]] ] rpn end to eval (local "x "y "t) if not empty? :s ~ [ make "t first :s make "s bf :s if member? :t [+ - * /] ~ [ make "y eval make "x eval op run (list :x :t :y) ] if number? :t [op :t] ] (throw "err "error) end