> "Видимый" синтаксис - это прежде всего набор маркеров, позволяющий быстро понимать, что происходит, не вчитываясь в каждую строку.Ну, этому помогает скорее не синтаксис, а кое-какие решения, принятые на этапе проектирования языка. Например отсутствие перегрузок.
А то как это часто бывает с плюсами, смотришь на код, там написано read(...), а у тебя этот самый read 7 раз переопределён в текущем пространстве имён.
Или отдельная песня с итераторами, для которых перегружен оператор стрелки, в результате чего оказывается, что i->clue.getExts() вызывает метод getExts класса, которому принадлежит поле clue текущего элемента, на который ссылается итератор i.
> А, foreach - ясно, глянули, что и по чём итерируется - и всё.
(for ([i '(1 2 3)])
<code>)
Вроде ясно, что i перебирает значения от 1 до 3, и для каждого выполняется блок <code>.
> if - отлично, условие, ветка 1, ветка 2.
(if <condition>
<true-branch>
<false-branch>)
Офигенно "другой" синтаксис.
> Всё чётко отделено и визуально выделяется. А скобочки ваши -
> брейнфак в профиль, независимо от "мощности" и от того, что алгоритм
> не изменится.
Есть у меня подозрение, что этого мнения придерживаются люди, которые полезли править sexp-ы в редакторе, который не поддерживает подсветку парных скобок и автоматическую расстановку равных отступов для выражений одного уровня вложенности. Детектирую это простым вопросом: а json или xml как способ хранения данных чем-либо отличаются от sexp-ов?
> Ну и к тому же - кастомный синтаксис это прикольно... Когда это небольшое дополнение к основному, перекрывающему абсолютное большинство потребностей.
Ну в общем да, тут есть нюанс: прежде, чем создавать новый макрос, надо трижды подумать, а нужно ли оно вообще. Ибо макрос визуально не отличается от любого другого символа, но можно огрести при попытке передать его параметром в функцию высшего порядка. Однако, справедливости ради, перед сишниками такой проблемы просто не возникает, потому что у вас тупо нет функций высшего порядка (точнее, есть, но очень сильно кастрированные).