История изменений
Исправление SZT, (текущая версия) :
А почему плюсостандартизаторы не хотят добавить ШТАТНУЮ возможность расширять синтаксис? Может мне еще процитировать кое-какие фрагменты из фундаментального труда «Lisp: побеждая посредственность» про возможность расширения языка средствами самого языка? Например:
Но, скажем, если язык A поддерживает рекурсию, а B — нет, это нечто, что нельзя исправить написанием библиотечных функций.
...
Дело не в том, что в Lisp'е странный синтаксис, скорее, его нет вообще. Программы пишутся в готовых синтаксических деревьях, которые в других языках генерируются парсером во время разбора исходного текста. Эти синтаксические деревья в Lisp'е полностью доступны вашим программам, и вы можете писать программы, которые изменяют эти деревья. В Lisp'е подобные программы называются макросы. Это программы, которые пишут программы.
Исходная версия SZT, :
А почему плюсостандартизаторы не хотят добавить ШТАТНУЮ возможность расширять синтаксис? Может мне еще процитировать кое-какие фрагменты из фундаментального труда «Lisp: побеждая посредственность» про возможность расширения языка средствами самого языка? Например:
Но, скажем, если язык A поддерживает рекурсию, а B — нет, это нечто, что нельзя исправить написанием библиотечных функций.
Дело не в том, что в Lisp'е странный синтаксис, скорее, его нет вообще. Программы пишутся в готовых синтаксических деревьях, которые в других языках генерируются парсером во время разбора исходного текста. Эти синтаксические деревья в Lisp'е полностью доступны вашим программам, и вы можете писать программы, которые изменяют эти деревья. В Lisp'е подобные программы называются макросы. Это программы, которые пишут программы.