Здравствуйте, Mystic, Вы писали:
M>Тут возникает небольшой ньюанс. Используя Common SQL мы так и не уходим от синтаксиса LIST, который, как мне кажется, уступает стандартному синтаксису SQL. Например, необходимость квотирования нужных фрагментов, запись арифметических выражений и т. д. Скажем последний select как для меня гораздо более вразумительнее выглядит в виде:
M>select customer, item, quantity from header, detail where header_id = detail_id
Common Lisp имеет также макросы чтения, что в принципе позволяет записать запрос так:
(loop for (c i q) in #[SQL] select customer, item, quantity from header, detail where header_id = detail_id;
do ...)
НО:
— синтаксис очень не похож на Лисповский, значит, будут проблемы с подсветкой, редактированием, сообщением об ошибках и т.д.;
— а также со вставкой Лисп-выражений в запрос (например, имени переменной name-id);
— видимый "исходный текст" радикально отличается от внутреннего представления, значит подняться еще на один мета-уровень будет сложно.