18 lines
420 B
Text
18 lines
420 B
Text
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])
|
|
}
|