Есть функция (не осталось!) Функция/операция в ржавчине?
Насколько я могу сказать, что нет модульной арифметики функции.
Это также случается в С, например, и обычно используется обходное решение, как вы упомянули: (a % b) + b
.
В целом для языков, таких как C, C++, D, C#, F # или Java: %
- это на самом деле остаток. Хотя в языках сценариев, таких как Perl, Python или Ruby: %
- это модуль.
Разработчики языка не всегда придерживаются «правильного математического пути», поэтому языки компьютеров могут быть вначале странными по строгой математике. Дело в том, что как модуль, так и остаток, верны для разных целей. Модуль является более математичным, если вам нравится, в то время как остаток (в C-семействе) согласуется с общим целочисленным делением, удовлетворяющим: (a/b)*b + a%b = a
(и это принято из старого Фортрана). Так %
лучше назвать остальные, и я полагаю, Ржавчина быть в соответствии с С.
И очевидно, что вы не первый отметить это, обратите внимание на эти вопросы Rust мерзавца-хаба:
Любая причина использовать термин 'модуль 'вместо' modulo' (который является более распространенным AFAICS). – ideasman42
Они, возможно, изучали где-то, где используется термин модуль, не зная, что разные институты имеют тенденцию отличаться в словаре. – OliverUv