Если мы предположим обычный порядок операций, то любые умножения будут вычисляться перед любыми сложениями. Итак, когда у вас есть y + x * z, x * z вычисляется первым в соответствии с обычным порядком операций. Более явно, y+x*z означает (y+(x*z)). Таким образом, 2*3/(2-1)+5*(4-1) означает (((2*3)/(2-1))+(5*(4-1))).
Если бы вы прямо заявили заранее, что вы определили свой порядок операций как сложение, происходящее перед умножением, то, если бы вы написали 4 + 5 * 6, вы имели бы в виду ((4 + 5) * 6). Если бы вы это сделали, то вы могли бы сформулировать распределительный закон как x * y + z = (x * y) + (x * z). Что будут означать выражения, если вы опустите операции? Рассмотрим xy&z, где & является двоичным, а бинарная операция для xy опускается. Если пропущенная бинарная операция равна *, а & равна +, то это будет означать, что выраженная операция & будет выполняться до скрытой операции умножения. Обычно считается, что пропущенные операции выполняются первыми. Таким образом, если бы у сложения был приоритет связывания над умножением, то, вероятно, имело бы смысл, чтобы выражение, подобное xy, означало x+y вместо более обычного x*y. В принципе, кажется, нет ничего плохого в том, чтобы сложения происходили перед умножениями, если вы заявляете, что хотите сделать это заранее, и придерживаетесь этого соглашения и его последствий во всем, что вы пишете. При всем этом, за исключением общения с людьми, которые не понимают RPN или PN, я просто не понимаю, зачем вам писать в инфиксной нотации, когда вы понимаете RPN и PN.
person
Doug Spoonwood
schedule
12.06.2013