如何在Clojure中打破列表?
我正在做运动 以下是我的解决方案:如何在Clojure中打破列表?,clojure,Clojure,我正在做运动 以下是我的解决方案: (defn infixcal [left op right & expr] (let [r (op left right)] (if (nil? expr) r (infixcal r expr)))) 当我传递表达式38+48-2/2时,我得到了ArityException,因为expr被收集到一个列表(-2/2) 问题是如何将其分解为几个参数,并将其传递到函数infixcal的下一个调用中。我相信您希望应用该函数:
(defn infixcal [left op right & expr]
(let [r (op left right)]
(if (nil? expr)
r
(infixcal r expr))))
当我传递表达式38+48-2/2
时,我得到了ArityException,因为expr
被收集到一个列表(-2/2)
问题是如何将其分解为几个参数,并将其传递到函数infixcal的下一个调用中。我相信您希望应用该函数:
此函数将另一个函数f作为其第一个参数,列表l作为其第二个参数。然后将函数f应用于参数列表(返回值从apply返回)。我相信您希望函数apply:
此函数将另一个函数f作为其第一个参数,列表l作为其第二个参数。然后将函数f应用于参数列表(返回值由apply返回)。。直到今天仔细阅读文档,我才知道申请。谢谢你,伙计。直到今天仔细阅读了这些文件,我才弄清楚申请表。