【发布时间】:2014-11-07 15:10:43
【问题描述】:
我写过这么简单的clojure程序:
(defmacro lister[n]
(let
[x (range n)]
`(max ~@(x))
)
)
; (macroexpand (lister 5))
(lister 5)
当我尝试评估(lister 5)时,clojure 退出并出现错误:
CompilerException java.lang.ClassCastException: clojure.lang.LazySeq 无法转换为 clojure.lang.IFn,编译:(:30:3)
我做错了什么?当我用它的值替换 x 时 - (范围 10) 宏运行良好。
【问题讨论】: