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? 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
Hi Rolf -- For your consideration:? One of things the R community doesn't emphasise as much as some other (more commercially focussed?) language communities is the importance of automated testing.? Hadley has written that that everything should live in packages which then enables this easily, but, if you, like I, have a project that's a mixed bag of scripts, notebooks, and other gubbins, you then end up fighting the packaging rules.? Notwithstanding, it's relatively easy to do testing without the packaging overhead and this would then solve not only your asterisk duplication problem but also catch a whole host of other problems with programs not working quite the way they were intended it. Just a thought.? Best wishes / Mejores deseos /??Meilleurs v?ux Ian?... On Tuesday, August 26, 2025 at 07:36:11 AM GMT+2, Rolf Turner <rolfturner at 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? 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 at 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. [[alternative HTML version deleted]]
On Tue, 26 Aug 2025 at 11:06, Rolf Turner <rolfturner at 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 at 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.