[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