email@example.com wrote: > In article <firstname.lastname@example.org>, email@example.com writes: > > > > 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. > > Remember that what we're talking about here is merely a notational > convention. It has nothing whatsoever to do with the distributive > property of multiplication over addition.
And, to elaborate a bit more, I venture to disagree and suggest that the convention *does* have to do with this property. I suggest that the distributive property of * over + is one of the reasons - possibly the main reason - why it is "natural" to view multiplication as "tighter" than addition, and to want to interpret, say, 3*4 + 3*6 as (3*4) + (3*6) rather than as ((3 * 4) + 3) * 6 or whatever.