Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.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中类scheme函数的宏_Clojure_Macros_Scheme - Fatal编程技术网

clojure中类scheme函数的宏

clojure中类scheme函数的宏,clojure,macros,scheme,Clojure,Macros,Scheme,我想创建类似定义宏的方案,下面是我的尝试: (defmacro define [list & body] `(defn ,(first list) [~@(rest list)] ~body)) 但当我跑步时: (定义(fooab)(+ab)) 我遇到错误:java.lang.Exception:def的第一个参数必须是符号(无源文件:18) 我的宏有什么问题?您需要使用~取消引用符号名称: (defmacro define [list & body] `(def

我想创建类似定义宏的方案,下面是我的尝试:

(defmacro define [list & body] 
    `(defn ,(first list) [~@(rest list)] ~body))
但当我跑步时:

(定义(fooab)(+ab))

我遇到错误:
java.lang.Exception:def的第一个参数必须是符号(无源文件:18)


我的宏有什么问题?

您需要使用
~
取消引用符号名称:

(defmacro define [list & body]
  `(defn ~(first list) [~@(rest list)] ~@body))

您需要使用
~
取消引用符号名称:

(defmacro define [list & body]
  `(defn ~(first list) [~@(rest list)] ~@body))