【问题标题】:Creating a collection of functions创建函数集合
【发布时间】:2013-07-08 12:52:09
【问题描述】:

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

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

【问题讨论】:

    标签: collections clojure higher-order-functions


    【解决方案1】:

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

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

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

    【讨论】:

    • 这正是我所需要的。非常感谢!
    • 另一种选择:(for [x [1 2 3]] #(bar x))
    猜你喜欢
    • 2016-04-26
    • 1970-01-01
    • 2020-07-03
    • 1970-01-01
    • 2011-09-24
    • 2016-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多