[Rd] Problem with ?Syntax

Duncan Murdoch murdoch at stats.uwo.ca
Sun Feb 21 18:44:18 CET 2010


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.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
>>
>>     
>
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
>



More information about the R-devel mailing list