8

だから私は関数のリストとデータのリストを持っています:

[fn1 fn2 fn3] [item1 item2 item3]

各関数を対応するデータ項目に適用するにはどうすればよいですか。

[(fn1 item1) (fn2 item2) (fn3 item3)]

例:

[str #(* 2 %) (partial inc)]   [3 5 8]

=> ["3" 10 9]
4

2 に答える 2

2

必ずしもより良いとは限りません。

user=> (for [[f x] (map vector [neg? pos? number?] [1 2 "foo"])]
  #_=>   (f x))
(false true false)

mapバージョンを可変引数に適したものにするには:

user=> (map (fn [f & args] (apply f args)) [+ - *] [1 2 3] [4 5 6] [7 8 9])
(12 -11 162)
于 2013-05-15T21:21:40.573 に答える