Tony wrote: > Hi all. > > Hope this isn't a silly question. > > I was wondering what the reason is for having multiple levels of operator > precedence? > > Phrased another way, why is it that we don't just evaluate everything from > left to right? > > Having multiple levels of precedence obviously adds complexity, so I assume > there must be some payback. However, I don't see what it is. >
As far as addition/subtraction vs multiplication/division is concerned, one reason is to ensure that the distributive property of multiplication works sensibly. For example, we want 3*(4 + 6) = 3*4 + 3*6 = 3*(6 + 4) = 3*6 + 3*4.
And for exponentiation we want, for example, 3*3^2 = 3^3, not (3*3)^2