Deepak,

It is hard to expect different languages to satisfy the same rules but
clearly radical changes make the learning curve for people who are
multilingual to be harder.

Note how the = operator in R also can be used as a normal assignment
statement even if officially we are urged to use <- and -> and occasionally
the longer variants of <<- and ->> as another example where Rolf might
accidentally place a variable in an unintended place.

As I mentioned, there is tremendous overloading in both formal languages and
mini-languages like regular expressions. The latter uses ^ to match at the
beginning and * to accept zero or more of the previous one pattern. But try
to write an equation in one of the TeX formatting languages, and it means
what follows is a superscript. 

When studying a new language, it is important for people to realize that
they should not assume much is the same, not even something like what a
parenthesis does. Functions with the same name, may be very different. Even
within a language like R, new functionality may use different symbols.
Consider that @ is now used to access slots in newer objects instead of
period. This may cause subtle mistakes.

Realistically, python and R are drastically different albeit over time there
can be some convergence.

-----Original Message-----
From: R-help <r-help-boun...@r-project.org> On Behalf Of Deepayan Sarkar
Sent: Tuesday, August 26, 2025 11:55 AM
To: Rolf Turner <rolftur...@posteo.net>
Cc: r-help@r-project.org
Subject: Re: [R] The "**" exponentiation operator.

On Tue, 26 Aug 2025 at 11:06, Rolf Turner <rolftur...@posteo.net> wrote:
>
>
>
> On more than one occasion I have got myself into trouble by
> fumble-fingering and typing "**" when I intended to type "*".
> Unfortunately the expression produced is syntactically correct and the
> consequent incorrect results were difficult (for me) to disentangle.
>
> I would be much happier if the "**" operator were simply not allowed,
> and threw an error.   It seems to me that the existence of the "**"
> operator is an archaism, probably deriving from Fortran.
>
> The documentation, obtained from ?Arithmetic, says at one point:
>
> > ** is translated in the parser to ^, but this was undocumented for
> > many years. It appears as an index entry in Becker et al. (1988),
> > pointing to the help for Deprecated but is not actually mentioned on
> > that page. Even though it had been deprecated in S for 20 years, it
> > was still accepted in R in 2008.
>
> It seems still be accepted in R in 2025.
>
> Would there be any mileage in asking R Core to deprecate "**", or
> better still make it defunct?  Can there be any rational basis for
> keeping "**" around?

Not a rational basis perhaps, but when I teach R to our newbie
students who all want to learn Python, I have fun pointing out that **
is the official way to exponentiate in Python, and ^ does something
quite crazy. So keeping ** around in R might make it a tad bit more
welcoming to Pythonistas.

Best,
-Deepayan

> cheers,
>
> Rolf Turner
>
> --
> Honorary Research Fellow
> Department of Statistics
> University of Auckland
> Stats. Dep't. (secretaries) phone:
>          +64-9-373-7599 ext. 89622
> Home phone: +64-9-480-4619
>
> ______________________________________________
> R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide
https://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.

______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide
https://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide https://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to