Symbology: "The art of expression by symbols"
Yes, there is no "one right way" to express something, so we (try to) pick one that is aesthetically pleasing.
Start with notation.
Polish notation and RPN are mirror images of each other.
The symbols "(", ")", "+", "*", "12", " ", "6", "5" tell us what to do in what order.
Only because the order is ambiguous in algebraic notation.
Then there's (a + b) * c or +*abc (no spaces needed)
All the detail necessary, not a wasted symbol.
But it doesn't look good to me - it's not esthetic, not .. artistic.
I prefer (VectorA + VectorB) * Speed
Are you sure that isn't because you learned algebraic notation in high school? If you'd learned polish notation from the start, I bet it would look more artistic to you. Talk to some long time Lispers and old HP calculator users.
[In the first example, of "(12 + 6) * 5", I prefer "12 <enter> 6 + 5 *". I learned algebraic notation in high school, am a long-time Smalltalker, and always preferred HP calculators (from my very first HP-35 in 1972).]
I agree that a notation one is not familiar with will seem "weird", no matter how superior it is to the one you are familiar with. -- DavidCary
calculators, 8087 assembly, etc., all use ReversePolishNotation
(RPN), named in honor of the brilliant Polish philosopher and mathematician Jan Lucasiewicz (ObscureGreatFoobars
Lisp uses prefix PolishNotation
, with the operator preceding the operands, e.g. (* 3 (+ 4 7)).
Inside a compiler, an algebraic expression is often represented in a tree structure.
Printing that tree with suffix traversal gives you PostfixNotation
Printing that tree with prefix traversal gives you PolishNotation
Printing that tree with infix traversal gives you traditional arithmetic notation.
and many other ComputerScience