我对Lisp的了解有限(尝试在业余时间学习一些知识),但据我了解,Lisp宏允许通过在Lisp本身中进行描述来引入新的语言结构和语法。这意味着可以将新构造作为库添加,而无需更改Lisp编译器/解释器。
这种方法与其他编程语言完全不同。例如,如果我想用一种新的循环或某种特定的习惯来扩展Pascal,则必须扩展该语言的语法和语义,然后在编译器中实现该新功能。
Lisp家族之外是否还有其他编程语言(即Common Lisp,Scheme,Clojure(?),Racket(?)等)提供了类似的在语言本身内扩展语言的可能性?
编辑
请避免进一步讨论,并在回答中要具体。我希望从概念的角度来理解一堆专门针对Lisp宏作为扩展机制的东西,以及哪些非Lisp编程语言可以提供某种概念,而不是一堆可以以某种方式进行扩展的编程语言的清单。靠近他们。