我需要执行以下操作:
(defn make-menu []
(for [i (range 3)]
'(+ i 100)))
我需要 make-menu 返回: ('(+ 0 100) '(+ 1 100) '(+ 2 100))
请注意,向量包含非评估函数。
是否可以在 Clojure 中执行此操作?
谢谢你的帮助!
雅库布
我需要执行以下操作:
(defn make-menu []
(for [i (range 3)]
'(+ i 100)))
我需要 make-menu 返回: ('(+ 0 100) '(+ 1 100) '(+ 2 100))
请注意,向量包含非评估函数。
是否可以在 Clojure 中执行此操作?
谢谢你的帮助!
雅库布
(defn make-menu [] (for [i (range 3)] (list '+ i 100)))
或者
(defn make-menu [] (for [i (range 3)] `(+ ~i 100)))
第一种形式只是三个元素的列表:符号 + 引用,i 计算为 for 列表理解中绑定的值和 100。
第二种形式是语法引用的示例。注意普通引用和语法引用之间的区别'
:第二个允许通过前缀来评估子表单~
。它也完全限定符号,因此+
变为clojure.core/+
. 普通引用只是引用引用形式中的每个子元素,因此无法进行评估。