创建一组函数

时间:2013-07-08 12:52:10

标签: collections clojure higher-order-functions

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

(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"))

1 个答案:

答案 0 :(得分:5)

我并不完全清楚你想要做什么,但也许你想要这样的东西:

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

这将创建一系列函数,在调用时(带有0个参数)将相当于(bar 1)(bar 2)等。