LINUX.ORG.RU

История изменений

Исправление den73, (текущая версия) :

Если брать CL reader macros, то у тебя получается путаница в использовании слова «символ» в значениях symbol и character.

Отнюдь. Ассоциировать reader macros не с сочетаниями букв, а именно с symbol - это такая фишка. Средство придать reader macros должную масштабируемость. Поскольку букв очень мало, а символов сколько хочешь.

Она включена в библиотеку budden-tools и кто-то (кажется, как раз monk) стащил её в библиотеку advanced-readtable. Хотя на comp.lang.lisp, если я правильно понял, были и другие корреспонденты, которые пользовались такой фичей. Я у себя в коде пользуюсь, на данный штук 10 разных символов-ридмакросов в общей сложности использовал за всю историю. Например, в программе расчёта Стирлинга символ mo:|[| используется для обращения к массиву. meta-parse:|[| служит для описания рекурсивных лексеров. Оба они спокойно уживаются в одной таблице чтения.

Вопрос, который я хочу задать экспертному сообществу, состоит в том, всё ли нужное есть у моего ридера для годного современного ЯП.

Например, я что-то слышал про читатель без побочных эффектов в Clojure, а вот есть ли в ней ридмакросы - не слышал.

Может быть, в каком-нибудь Расте, Голанге, Ракетке или Котлине сделан лучши ридер?

Попробую ещё кастануть lovesan.

И в твоём примере с ЭсКуЭль непонятно, чем это отличается от обычного вызова функции, которая парсит строку запроса.

Там написано. Можно уже во время чтения провести лексический разбор SQL. Во-первых, можно сразу найти в нём, скажем, несбалансированные одинарные кавычки и круглые скобки.

Если ридер вызывается из IDE, то можно на основании лексического анализа разрисовать ключевые слова SQL (ридер уже будет знать, что это именно SQL и ничто иное). Зарядить в работу completion по объектам базы данных, если у нас есть копия метаданных.

Именно для этой возможности важно запихнуть именно в ридер, а не в другую часть реализации языка.

Исходная версия den73, :

Если брать CL reader macros, то у тебя получается путаница в использовании слова «символ» в значениях symbol и character.

Отнюдь. Ассоциировать reader macros не с сочетаниями букв, а именно с symbol - это такая фишка. Средство придать reader macros должную масштабируемость. Поскольку букв очень мало, а символов сколько хочешь.

Она включена в библиотеку budden-tools и кто-то (кажется, как раз monk) стащил её в библиотеку advanced-readtable. Хотя на comp.lang.lisp, если я правильно понял, были и другие корреспонденты, которые пользовались такой фичей. Я у себя в коде пользуюсь, на данный штук 10 разных символов-ридмакросов применяю.

Вопрос, который я хочу задать экспертному сообществу, состоит в том, всё ли нужное есть у моего ридера для годного современного ЯП.

Например, я что-то слышал про читатель без побочных эффектов в Clojure, а вот есть ли в ней ридмакросы - не слышал.

Может быть, в каком-нибудь Расте, Голанге, Ракетке или Котлине сделан лучши ридер?

Попробую ещё кастануть lovesan.

И в твоём примере с ЭсКуЭль непонятно, чем это отличается от обычного вызова функции, которая парсит строку запроса.

Там написано. Можно уже во время чтения провести лексический разбор SQL. Во-первых, можно сразу найти в нём, скажем, несбалансированные одинарные кавычки и круглые скобки.

Если ридер вызывается из IDE, то можно на основании лексического анализа разрисовать ключевые слова SQL (ридер уже будет знать, что это именно SQL и ничто иное). Зарядить в работу completion по объектам базы данных, если у нас есть копия метаданных.

Именно для этой возможности важно запихнуть именно в ридер, а не в другую часть реализации языка.