2013-07-08 243 views
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"))

回答

5

我並不完全清楚你正在嘗試做的,但也許你想要的東西,如:

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

這將創建功能,調用時(0參數)的順序將做相當於(bar 1),(bar 2)

+0

這正是我需要的。非常感謝! – sebi

+1

替代:'(for [x [1 2 3]]#(bar x))' –