是否可以在 clojure 中共同保留 words/functions

Is it possible to common reserved words/functions in clojure

免责声明:我对 clojure 的经验很少,在投入时间学习这门语言之前,我想知道它是否可行

我正在寻找一种允许程序员重新定义常见保留 words/symbols 的语言,例如 "if"、"and"、"class"、“=”等我可以创建一个 DSL 来生成其他语言的代码

例如:

(class "SomeClassName"
    (private (static ("someProperty" (= (array
         '("SomeKey" "SomeValue")))))

会 return 一些可以转换为以下内容的数据结构 php

class SomeClassName {
    private static $someProperty = array("SomeKey" => "SomeValue");
}

clojure中真正保留的words/functions很少,几乎都是简单的函数或者宏(比如and, = and let)。

真正保留的特殊 functions/words 称为 "special forms",您可以阅读它们 here(如 ifdo 等。 .)