Многие языки имеют операторы возведения в степень: R, Matlab, BASIC, LaTeX и UNIX для bc используют '3 ^ 2', Ada, COBOL, PL / I, Python и Fortran используют '3 ** 2'.
Я видел, что утверждалось, что возведение в степень является относительно редким, но я скажу, что за многие годы программирования мне никогда не требовался XOR, и прошло много лет с тех пор, как я нуждался в каких-либо битовых операциях ввсе - вероятно, в те времена, когда они измеряли RAM в килобайтах.С другой стороны, я делаю возведение в степень довольно часто.
Мне кажется, что если бы я собирался использовать Scala в качестве моего R, я мог бы рассмотреть что-то вроде:
implicit class FixPow(x: Double) { def ~^(p: Double): Double = Math.pow(x, p) }
, что являетсянемного некрасиво, но имеет более высокий приоритет, чем '*', что и нужно.Таким образом, '3 * 2 ~ ^ 3' оценивается как 24, как и ожидалось.
Поддержка Си для полного набора битовых операций происходит из-за того факта, что UNIX был написан на C. Он по существу кодифицировал шаблоны на ассемблере.