Gabor Grothendieck wrote:
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.

There are a few other errors in that page, e.g. saying that [ has greater priority than ::, but

version <- 1:10
base::version[1]

shows :: has higher priority.   I'll take a look.

Duncan Murdoch
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


______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel

Reply via email to