I wasn't claiming there was an ambiguity but it does not perform according to the operator precedence documented in ?Syntax . If it performed as documented it would give an error.
On Sat, Feb 20, 2010 at 6:57 AM, Barry Rowlingson <b.rowling...@lancaster.ac.uk> wrote: > On Sat, Feb 20, 2010 at 9:52 AM, Gabor Grothendieck > <ggrothendi...@gmail.com> wrote: >> In ?Syntax [ is given as higher priority than $ but BOD$demand[3] >> seems to be the same as (BOD$demand)[3] contrary to [ being higher >> priority. >> >>> BOD$demand[3] >> [1] 19 >>> (BOD$demand)[3] >> [1] 19 >> >> What is the rule being used here? > > I think its the parser rule that defines the syntax of $ on a list. Does: > > BOD$(demand[3]) even work? > >> BOD$(demand[3]) > Error: unexpected '(' in "BOD$(" > > - no. The parser sees a $ and then gets the next token (gram.y shows > this to be a symbol or a string constant) as the thing to deal with. > Symbols I can't think of an example where $ and [ could have > ambiguous precedence that is syntactically correct, so maybe the order > is irrelevant... > > Just for fun: > >> x=list(a=1,b=2) >> x$"a[1]"=2 >> x$"a[1]" > [1] 2 >> x$a[1] > [1] 1 > > > Barry > ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel