В языках программирования, таких как F #, в которых инфиксные операторы являются «функциями» или первоклассными гражданами, как они соблюдают порядок операций, такой как 2 * 4 + 6 (который оценивается как (2 * 4) + 6) ?
Для Haskell вы можете указать уровень приоритета и ассоциативность для оператора. Scala основывает приоритет на первом символе оператора , а ассоциативность - на последнем символе. Я не знаю F #, но похоже, что он также основан на используемых символах .
Некоторые другие языки позволяют вам только перегрузить существующий оператор, а не создавать свой собственный, поэтому они сохраняют приоритет и ассоциативность своих встроенных аналогов.