如何在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返回)。

。直到今天仔细阅读文档,我才知道申请。谢谢你,伙计。直到今天仔细阅读了这些文件,我才弄清楚申请表。