Skip to content
Back to formatted view

Raw Message

Message-ID: <971536df1002200407w2d5bedc6q5e74ff92e9787570@mail.gmail.com>
Date: 2010-02-20T12:07:44Z
From: Gabor Grothendieck
Subject: Problem with ?Syntax
In-Reply-To: <d8ad40b51002200357x667008fan5bb069864af3b102@mail.gmail.com>

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
>