I agree with you that exponentiation is usually defined as right-associative.
How about a compatibility switch in your code which you can flip to make it work either way. On 21-Nov-2010, at 11:25 AM, Dave DeLong wrote: > Hi everyone, > > Let's say I have the string @"2 ** 3 ** 2". I can run this through > NSPredicate to parse it into an NSExpression tree for me, like so: > > NSExpression * e = [(NSComparisonPredicate *)[NSPredicate > predicateWithFormat:@"2 ** 3 ** 2 == 0"] leftExpression]; > > When I log/evaluate this predicate, it gives me "(2 ** 3) ** 2", which > evaluates to 64. In other words, NSExpression (or NSPredicate or whomever) > has assumed that the power operator is a left-associative operator. > > According to Wikipedia (the source of all truth and knowledge), when no > parentheses are present in the expression, "the order is usually understood > to be top-down, not bottom-up." [1] In other words, "a ** b ** c" is > understood to be "a ** (b ** c)", not "(a ** b) ** c". Put more formally, > the power operator is supposed to be right associative. > (rdar://problem/8692313) > > I'm currently working on some code that mimics much of the behavior of > NSExpression. However, I'm now faced with a choice: do I make my code > technically correct by making the power operator right associative, or do I > maintain parity with NSExpression and make it left associative? > > Any suggestions you have would be welcome. > > Thanks, > > Dave DeLong > > [1]: http://en.wikipedia.org/wiki/Exponentiation#Identities_and_properties > _______________________________________________ > > Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) > > Please do not post admin requests or moderator comments to the list. > Contact the moderators at cocoa-dev-admins(at)lists.apple.com > > Help/Unsubscribe/Update your Subscription: > http://lists.apple.com/mailman/options/cocoa-dev/rols%40rols.org > > This email sent to r...@rols.org _______________________________________________ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com