I found an entry for the '** operator' in the index of the 1988 Blue Book, with a reference to p. 431. I see nothing about it on p. 431 (or 432), but that is the help page for 'Deprecated'.

So I surmise that this was part of a version of S prior to that which started life as QPE (with first-class user functions).

It has been in the R tokenizer since at least 1998.

On Thu, 15 May 2008, Prof Brian Ripley wrote:

On Thu, 15 May 2008, Roger Bivand wrote:

On Thu, 15 May 2008, Barry Rowlingson wrote:

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!!!

Is there a clue in:

"^"(5, 2)
[1] 25
"**"(5, 2)
Error: could not find function "**"
5 ^ 2
[1] 25
5 ** 2
[1] 25

that is, it is truly obfuscated and not accessible using contemporary interfaces?

AFAIK it has only ever been used by the parser, which replaces it by ^ in the tokenizer. I believe it is undocumented in R, but S used to allow it (and may still), so presumably it is for compatibility.

As Duncan Murdoch says, use undocumented features at your own risk. I've contemplated removing this one at times.

--
Brian D. Ripley,                  [EMAIL PROTECTED]
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595

______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel


--
Brian D. Ripley,                  [EMAIL PROTECTED]
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595

______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel

Reply via email to