# Precedence discrepancy

Posted by maccaroo
Announcements Last Post
SoC Curricula 09/30/2017 01:08PM
Demarcation or scoping of examinations and assessment 02/13/2017 07:59AM
School of Computing Short Learning Programmes 11/24/2014 08:37AM
Unisa contact information 07/28/2011 01:28PM
 Precedence discrepancy March 28, 2006 10:45PM IP/Host: ---.freedom2surf.net Registered: 13 years ago Posts: 26 Rating: 0
I'm wondering if anyone else has been confused by the prescribed book's definition of operator precedence.

On page 75, the author says that since * binds stronger than +, + has higher precedence. Now that seems backwards to me, since the operator with the highest precedence should surely be performed first (leaving the result for the other operator).

On the next 2 pages, the author describes yfx as a operator with 1st argument precedence higher than the 2nd, and thus a-b-c should be interpreted as (a-b)-c, i.e. higher predence first! This makes sense, but it contradicts what was said earlier. Right?!?
 Re: Precedence discrepancy April 04, 2006 11:14AM Moderator IP/Host: Moderator Registered: 13 years ago Posts: 7 Rating: 0
The terminology is indeed unfortunate, since a higher precedence value in Prolog indicates lower precedence (in normal English). The lowest precedence value in Prolog binds the strongest.

In the specifier yfx, the precedence value of x must be strictly lower than of f, and the precedence value of y must be lower than or equal to that of f. The first argument precedence can be either lower or higher than the second, that doesn't matter. The reason why the reading a - (b - c) is wrong, is because the precedence of b - c is 500 (the precedence of the main operator in the expression b - c) , which is equal to the precedence of the main operator in a - (b - c).
Sorry, only registered users may post in this forum.