Здесь собираю случаи, в т.ч. предложенные в ходе дискуссии.
1. Алгебра чисел, алгебра бухгалтерских чисел, матрицы. Здесь мы, по сути, определяем арифметику.
2. Список прибавить элемент, список нарастить элементов.
3. В поток вывести а, б, в (С++ -шный классический оператор <<)
4. А влечёт Б (логика и доказательства)
5. А имеет тип Б.
6. А является подтипом Б.
7. Логические операции (а или б)
8. Битовый сдвиг и присваивание <<=
9. Осуществить действие в некоторых точках списка, а не во всех:
f = map (/ 2) $ (g $ k x $ y + d)
10. Индексация массивов пользовательскими типами ключа.
11. Операции со строками и последовательностями (поиск, замена, удаление, вставка и т.п.)
12. Величины с размерностью, например 500 миллисекунд.
Какие ещё есть полезные варианты использования операций? Меня особенно интересуют те случаи, где именно синтаксис операций даёт особое удобство. Ведь всё это можно выразить как функции, например: +(2,2), Нарастить(Список,Элемент), Влечёт(А,Б), Является(А,Б) и т.д.
Мне просто кажется, что операции могут сильно понизить понятность кода из-за приоритетов, особенно, когда приоритеты могут назначаться пользователем. И я ищу подтвержедний той точке зрения, что операции особо ничего не дают и без них вполне можно обойтись (как обходится лисп). Или опровержений.