You may be kidding, Spencer, but there already is a multiplication extension using a single asterisk to signify matrix multiplication using %*% as the multiplication operator is not overloaded to do something when both operands are of type matrix.
But for real clarity, you are allowed text so rather than %**% it might make sense to make a longer but self-documenting %exponentiate_by% as in `%exponentiate_by%` <- function(base, power) base^power Now here is code showing the use: e <- 2.718281828 i <- complex(real = 0, imaginary= -1) # pi is already built-in to R minus_one <- e %exponentiate_by% (pi * i) On my machine, the result is close enough to minus one: > e %exponentiate_by% (pi * i) [1] -1-5.305313e-10i But, of course, once you play some games, you can skip making inline operations and just use a normal function version. -----Original Message----- From: Spencer Graves <spencer.gra...@effectivedefense.org> Sent: Saturday, August 30, 2025 9:38 AM To: avi.e.gr...@gmail.com; 'Richard O'Keefe' <rao...@gmail.com>; 'Leo Mada' <leo.m...@syonic.eu> Cc: 'Leo Mada via R-help' <r-help@r-project.org> Subject: Re: [R] The "**" exponentiation operator. How about: "%**%" <- function(x, y)x^y 2%**%3 spencer graves ;-) On 8/30/25 08:23, avi.e.gr...@gmail.com wrote: > Richard, > > As noted, we have had a history of computer languages using a very small > number of symbols to do too many things. A few languages like APL sort of > created new symbols by overwriting. Some simply used functions rather than > symbols. And, I note languages like C used asterisk to mean very different > things like following a pointer in concise but not trivial code as in how to > copy a null terminated character string: > > while (*p++ = *q++) > > If you had a pointer to a pointer to a pointer to a pointer, you could see > code with many stars and often many parentheses. > > As for your suggestion, I think you need to consider the people who have to > create a compiler or interpreter to handle the requirements. I am sure it is > doable in some ways but I suggest care. Many languages accept octal or > hexadecimal notation and thus a number like 2A is allowed but since this can > lead to ambiguous situations, often a x must be prepended as a sort of > special case. In such a language, you might not want to use x or X OR you may > insist on whitespace around it as compared to other operators that need nonw. > And, need I say that x is a very common variable name. > > Back to R, it is what it is and if someone designs yet another new language > in x decades, who knows what they will come up with that may be hodgepodge of > features and ways from R and python and ... and will have so many features > and ways that no one person or group knows it all as it will include use of > thousands of symbols from something like UNICODE. > > For now, if we use R, we have what we have and we will make mistakes. Anyone > here think there can be problems if someone creates read_csv() as their > version of read.csv() and some people use the wrong one, ...? > > > > > -----Original Message----- > From: R-help <r-help-boun...@r-project.org> On Behalf Of Richard O'Keefe > Sent: Saturday, August 30, 2025 3:09 AM > To: Leo Mada <leo.m...@syonic.eu> > Cc: Leo Mada via R-help <r-help@r-project.org> > Subject: Re: [R] The "**" exponentiation operator. > > I did mathematics up to University level and finally petered out at > Category Theory, which I never got the hang of. > Here's the fun: I *never* saw the asterisk used for multiplication in > my mathematics or physics courses. > And I never saw any operator at all used for exponentiation. > Asterisk was a superscript operator for conjugation or duals. Had > nothing to do with products. > > Fortran COBOL, and PL/I used. and still use, * for multiplication and > ** for exponentiation. > APL used × for multiplication and * for exponentiation. > > Could I recommend that R allow × as a synonym for * ? It has been the > mathematical sign for > multiplication for >400 years, when a sign is used, and it's been > available on computers for decades. > > On Sat, 30 Aug 2025 at 03:05, Leo Mada via R-help <r-help@r-project.org> > wrote: >> >> Dear Rolf, >> >> I join this discussion a little bit late. >> >> Indeed, the '**' operator is a very poor choice for exponentiation. I can >> give some examples to justify my claim. Notice that '**' and '*' would >> almost always get mixed in real mathematics. >> >> Fortunately, I am used to "^"; otherwise, I would have had a very hard time >> to debug the *monster*: >> https://github.com/discoleo/R/blob/master/Math/Poly.System.S5.Ht.Formulas.Derivation.Coeffs.R >> >> Those are the coefficients of a polynomial of order 7 (see below for further >> information). And I have plenty of examples. >> >> Unfortunately, some "programming" languages mix '*' and '**'; which makes >> any work with polynomials a nightmare! >> >> I "found" something on this topic - hope everyone gets a little bit amused: >> https://github.com/discoleo/R/blob/master/Math.NewTerminology.wiki >> >> Sincerely, >> >> Leonard >> >> =========== >> Regarding the *Monster*: >> >> It enables to solve a particular system with 5 variables with cyclic >> symmetry: >> x1+x2+x3+x4+x5 = R1 >> # Note: this is NOT the full E2 >> x1*x2+x2*x3+x3*x4+x4*x5+x5*x1 = R2 >> E3 = R3 >> E4 = R4 >> E5 (= x1*x2*x3*x4*x5) = R5; >> >> This system can be transformed into a system that can be solved using a >> polynomial of lower order than the original system. >> >> Unfortunately, I do not have a methemtical theory yet for the Ht5 System. I >> worked it out the hard way; it is almost finished, but I did not have any >> more time during the last 2 years. >> >> For some (very) basic details, see: >> https://github.com/discoleo/R/blob/master/Math/Poly.System.md >> >> Again, I did not have time to write anything more thoroughly. >> >> >> [[alternative HTML version deleted]] >> >> ______________________________________________ >> 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. ______________________________________________ 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.