clojure-解释';应用';关于这点
我理解apply如何在这样一个简单的表达式中工作:clojure-解释';应用';关于这点,clojure,Clojure,我理解apply如何在这样一个简单的表达式中工作: (apply + '(1 2 3)) 在我正在读的一本书中,我遇到了一个更复杂的例子 (def make (fn [class & args] (let [seeded {:__class_symbol__ (:__own_symbol__ class)} constructor (:add-instance-values (:__instance_methods__ class))
(apply + '(1 2 3))
在我正在读的一本书中,我遇到了一个更复杂的例子
(def make
(fn [class & args]
(let [seeded {:__class_symbol__ (:__own_symbol__ class)}
constructor (:add-instance-values (:__instance_methods__ class))]
(apply constructor seeded args))))
在上面的示例中,seeded是一个map,args是一个ArraySeq
有人能解释一下应用程序在这种情况下是如何工作的吗?在这种情况下(应用构造函数种子参数)
相当于调用(构造函数种子参数arg0 arg1 arg2…
)。它打开最后一个参数(必须是seqable)并在计算之前将它们逐个附加到列表中
例如,此:(应用+1[23])
展开到(+1 2 3)
这似乎类似于:
相当于((make)MyClass)
新的MyClass()
相当于((make)MyClass“foo”“bar”3)
新MyClass(“foo”“bar”,3)
(应用构造函数种子参数)
相当于调用(构造函数种子参数arg0 arg1 arg2…
)。它打开最后一个参数(必须是seqable)并在计算之前将它们逐个附加到列表中
例如,此:(应用+1[23])
展开到(+1 2 3)
这似乎类似于:
相当于((make)MyClass)
新的MyClass()
相当于((make)MyClass“foo”“bar”3)
新MyClass(“foo”“bar”,3)