Clojure
Clojure言語のマクロ機構は、Common Lispのそれによく似ている。ただし、Clojure言語のバッククオート(「シンタクス・クオート」と呼ばれる)では、個々の記号が局所的な名前空間によって区別されるという点で、Common Lispのマクロとは異なっている。この仕組みによって、マクロ展開時の変数の捕獲(= マクロが展開された環境に同名の変数があると、その変数の値が変更されてしまうこと)を避けている。マクロ展開時の変数の捕獲を許容するように強制することもできるが、それは明示的に行わなければならない。また、Clojure言語では、現在の名前空間にインポートされた別の名前空間の大域名を変更することは許容されていない。
CUI版のHello World:
GUI版の Hello World: