collections - 创建函数集合

标签 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"))

最佳答案

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

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

这将创建一系列函数,调用时(使用 0 个参数)将执行与 (bar 1)(bar 2) 等等效的操作。

关于collections - 创建函数集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17527138/

相关文章:

java - ArrayList<ArrayList>> 由正在添加的 ArrayList 进行备份

cocoa - NSArray 第三方子类保存原始值

clojure - 对无限序列使用doseq/for

Clojure - 为什么 into 对列表的行为不同于对向量的行为?

当静态类型为 Map 时,Scala SortedMap.map 方法返回未排序的 map

c# - 我们在 C# 中有某种三重集合吗?

c# - 我什么时候应该在 IEnumerable<T> 的上下文中使用 .Count() 和 .Count

clojure - Clojure 中的科学数据集操作——将 ByteBuffers 读入矩阵

reactjs - 当我尝试传递另一个 prop 时,为什么 typescript 会在我的 HOC 中触发一个使用 rest props 的错误?

Python:理解reduce()'s '初始化器'参数