Как языки, поддерживающие операторов как граждан первого класса, соблюдают порядок операций? - PullRequest
2 голосов
/ 05 мая 2020

В языках программирования, таких как F #, в которых инфиксные операторы являются «функциями» или первоклассными гражданами, как они соблюдают порядок операций, такой как 2 * 4 + 6 (который оценивается как (2 * 4) + 6) ?

1 Ответ

2 голосов
/ 05 мая 2020

Для Haskell вы можете указать уровень приоритета и ассоциативность для оператора. Scala основывает приоритет на первом символе оператора , а ассоциативность - на последнем символе. Я не знаю F #, но похоже, что он также основан на используемых символах .

Некоторые другие языки позволяют вам только перегрузить существующий оператор, а не создавать свой собственный, поэтому они сохраняют приоритет и ассоциативность своих встроенных аналогов.

...