Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否可以在clojure中使用公共保留字/函数_Clojure_Metaprogramming - Fatal编程技术网

是否可以在clojure中使用公共保留字/函数

是否可以在clojure中使用公共保留字/函数,clojure,metaprogramming,Clojure,Metaprogramming,免责声明:我对clojure几乎没有经验,我想在投入时间学习该语言之前知道这是否可行 我正在寻找一种语言,允许程序员重新定义常见的保留字/符号,如“if”、“and”、“class”、“=”等,这样我就可以创建一个DSL来生成其他语言的代码 例如: (class "SomeClassName" (private (static ("someProperty" (= (array '("SomeKey" "SomeValue"))))) 将返回一些可以转换为以下php的

免责声明:我对clojure几乎没有经验,我想在投入时间学习该语言之前知道这是否可行

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

例如:

(class "SomeClassName"
    (private (static ("someProperty" (= (array
         '("SomeKey" "SomeValue")))))
将返回一些可以转换为以下php的数据结构

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

clojure中几乎没有真正的保留字/函数,它们几乎都只是函数或宏(如、和)

真正保留的特殊功能/单词称为“特殊形式”,您可以阅读它们(如
if
do
,等等)