3

我有以下接收函数列表的函数:

(defn foo
  [fn-list]
  (map #(%) fn-list))

我想将此bar函数的实例作为参数传递给它。

(defn bar
  [x]
  (println x))

我的问题是我只有一个参数列表bar。Fox 示例,一个简单的列表("a" "b" "c")。我想创建一个bar函数列表,每个函数都作为参数,后面集合的一个元素。

有人可以告诉我如何做到这一点吗?谢谢。

注意:出于合理的原因,我不能简单地替换foo为。(map bar ("a" "b" "c"))

4

1 回答 1

5

我不完全清楚您要做什么,但也许您想要类似的东西:

(map #(partial bar %) [1 2 3])

这将创建一个函数序列,当被调用时(带有 0 个参数)将执行等价于(bar 1)(bar 2)

于 2013-07-08T12:58:19.060 回答