var ops=D("^",True, "*",'*, "/",'/, "+",'+, "-",'-); fcn parseRPN(e){ println("\npostfix: ", e); stack:=L(); foreach tok in (e.split()){ op:=ops.find(tok); if(op){ y := stack.pop(); x := stack.pop(); if(True==op) x=x.pow(y); else x=op(x,y); stack.append(x); } else stack.append(tok.toFloat()); println(tok," --> ",stack); } println("result: ", stack[0]) }