Q>Все было изобретено вместе с Лисп. То, что ты хочешь, это сложные макросы, которые есть в Лиспе. Я не хочу сказать, что они используются именно так, как ты сказал, но реализовать с их помощью такую схему довольно просто.
Пример для CLSQL:
(with-transaction
()
(insert-records :into [header]
:attributes '([id] [customer])
:values '(2 "Mary Smith"))
(insert-records :into [detail]
:attributes '([id] [item] [quantity])
:values '(2 "BMW" 3)))
(select [customer] [item] [quantity] :from '([header] [detail])
:where [= [header id] [detail id]])
Ну или
вот этот туториал... << RSDN@Home 1.2.0 alpha rev. 619>>