[Rd] Problem with ?Syntax
Gabor Grothendieck
ggrothendieck at gmail.com
Sat Feb 20 13:07:44 CET 2010
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.rowlingson at lancaster.ac.uk> wrote:
> 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
>
More information about the R-devel
mailing list