On Sat, Feb 20, 2010 at 9:52 AM, Gabor Grothendieck
<ggrothendieck at 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