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.