在Clojure中如何将函数序列依次应用到变量序列上?
问题分析
你当前的代码仅提取了入参函数列表的第一个元素做计算,没有遍历全部传入的函数,因此只能得到第一个函数的执行结果。
正确实现
(defn solution [& fns] (fn [& params] ;; 遍历每一个传入的函数,将所有参数应用到该函数,最后把结果转为向量返回 (vec (map #(apply % params) fns))))
效果验证
调用你给出的测试用例,执行结果完全符合预期:
((solution + max min) 2 3 5 1 6 4) ;; 返回 [21 6 1]
内容的提问来源于stack exchange,提问作者modar
相关产品推荐
相关产品推荐

