Насколько полезны инфиксные операторы в языке программирования? Стоят ли они дополнительной сложности, которую они предоставляют? Можете ли вы привести примеры, когда инфиксные операторы лучше подходят для задачи, которую нельзя решить, просто перегружая обычные операторы?
programming-languages
syntax
operators
Casebash
источник
источник
arg1.method(arg2)
а неmethod(arg1, arg2)
.Ответы:
Я думаю, что инфиксные операторы проистекают из математики.
Эта:
более читабелен для большинства людей, чем
потому что большинство людей знакомы с математикой.
Достаточно интересно в Haskell, вы можете переключаться между инфиксами и префиксами. Это использует ту же функцию "(+)":
и это с помощью той же функции "Elem":
источник
(+ 1 2)
гораздо более читабельным, чем1 + 2
. По крайней мере(+ 1 2 3 4 5)
, лучше, чем1 + 2 + 3 + 4 + 5
.1 2 +
или1 2 3 4 5 +
более типично для последнего случая1 2 + 3 + 4 + 5 +
. На самом деле, у тех, кто в совершенстве моделирует основанную на стеке систему, есть замечательное преимущество, и редко (если вообще?) Нужны скобки для настройки приоритета оператора.Компьютерные языки предназначены для людей, а не для машин. И люди больше привыкли к инфиксным операторам, чем к префиксам или постфиксам.
источник
Единственная реальная причина использования инфиксных операторов в том, что люди обычно находят их легче для чтения. Во многом это связано с двумя фактами:
2 * 2 = 4
и т. Д.(some complex expression) + (some other complex expression)
С логической / машинной точки зрения инфиксные операторы не добавляют никакой ценности, а в некоторых случаях создают неудобства:
(* 1 2 3 4 5)
в Лиспе, например, возможно, более чистый синтаксис для умножения набора чисел.источник