Lance wrote:ETA: I vaguely remember running into PN or RPN ages ago. I think I remember it as being bizarre and confusing, but only due to lack of actually using it for any length of time.

RPN == Reverse Polish Notation

Essentially, each time you put in a number, throw it onto the stack. Each time you put in a binary operation, apply it to the two numbers on the top of the stack, and replace them with the result of the operation.

So if you want to do 7+(19*3), it is like this:

1) Input "7" - stack = {7}

2) Input "19" - stack = {7 19}

3) Input "3" - stack = {7 19 3}

4) Input "*" - stack = {7 57}

5) Input "+" - stack = 64

If what you mean instead was (7+19)*3, then:

1) Input "7" - stack = {7}

2) Input "19" - stack = {7 19}

3) Input "+" - stack = {26}

4) Input "3" - stack = {26 3}

5) Input "*" - stack = {78}

Both achieved without parentheses brackets.

Polish Notation means the operations go first, rather than last. So the first one would be

+ 7 * 19 3

and the second would be

* + 7 19 3

I think if you are not used to it, it is probably very difficult.