From b.rowlingson at lancaster.ac.uk  Thu May 15 16:12:42 2008
From: b.rowlingson at lancaster.ac.uk (Barry Rowlingson)
Date: Thu, 15 May 2008 15:12:42 +0100
Subject: [Rd] ** operator
In-Reply-To: <482C1DD1.9090607@stats.uwo.ca>
References: <482C1988.90209@telenet.be> <482C1DD1.9090607@stats.uwo.ca>
Message-ID: <482C44DA.1090702@lancaster.ac.uk>

Duncan Murdoch wrote:

> It's fairly unlikely to go away, but it's an old undocumented feature, 
> so use at your own risk.  There are lots of other undocumented features, 
> but maybe no others at the lexical level.  Check out src/main/gram.y if 
> you want to search for more at that level, and src/* if you want them at 
> any level.


I just had a quick browse in the source and I can't see where "**" is 
defined. names.c relates ^ to the power operation in arithmetic.c but no 
sign of "**":

./names.c:{"^",         do_arith,       POWOP,  1,      2, 
{PP_BINARY2, PREC_POWER,  1}},

grepping for POWOP doesn't help.

  It's not an operator like '*':
 > get("**")
Error in get("**") : variable "**" was not found
 > get("*")
function (e1, e2)  .Primitive("*")

and there's no ** in gram.y.

searching for 'power' and quoted "**" doesn't help me either. Searching 
for unquoted ** just produces too much C code to be useful.

It's got to be there somewhere!!!

Barry



[Rd] ** operator
Barry Rowlingson