是否可以在clojure

时间:2015-10-29 03:42:24

标签: clojure metaprogramming

免责声明:我对clojure的经验很少,而且我想知道在我花时间学习语言之前是否有可能

我正在寻找一种语言,允许程序员重新定义常用的保留字/符号,例如"如果","和"," class&#34 ;," ="等等,这样我就可以创建一个DSL来生成其他语言的代码

例如:

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

会返回一些可以转换为以下php的数据结构

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

1 个答案:

答案 0 :(得分:2)

clojure中几乎没有真正的保留字/函数,几乎所有这些都只是函数或宏(例如and=let)。

真正保留的特殊功能/单词被称为"特殊形式"你可以阅读here(例如ifdo等)。