В С++ можно перегружать операции. Нагрузить + смыслом выше крыши. Это, с одной стороны, хорошо - можно писать компактный код. С другой стороны, увеличивается степень неявности и вероятность получить 1+2=12.
Есть другой вариант - определённые пользователем операции. Выглядит это примерно так (позволю попробовать свой язык - ведь нужно ж наработывать стиль; думаю, все поймут)
фун СложитьСтрокиФункция(С - строка;остальные_аргументы(Хв) - однородный_список(строка));
прменя Рез - строка = С, измнямя;
цикл посписку(Сл,Хв)
Рез = Рез -- Сл;
кнецикл
кнецфун
инфиксная_операция(:имя СложитьСтроки,
:рлзаця СложитьСтрокиФункция,
:пртет "+");
печать("аффтор" СложитьСтроки " " СложитьСтроки "жжот");
Здесь «+» значит - «сделать приоритет как у операции плюс». Что не так с этим подходом и почему он не прижился?