:のClojure:(FNのコルを適用)VS(#を適用する(FNの%&)コルを適用)私はlabreplを通じて自分の道を働いていると私は、このパターンは以下のいくつかのコードを見
;; Pattern
(apply #(apply f %&) coll)
;; Concrete example
user=> (apply #(apply + %&) [1 2 3 4])
10
これがあると思われるがこのパターンに相当する:
;; Pattern
(apply f coll)
;; Concrete example
user=> (apply + [1 2 3 4])
10
これらのパターンは同じですか?そうでない場合は、違いは何ですか?いつ他のものを使用しますか?
私はlabreplのセルラー・オートマトンラボでstep functionから元のパターンを取った:
(defn step
"Advance the automation by one step, updating all cells."
[board]
(doall
(map (fn [window]
(apply #(apply map brians-brain-rules %&)
(doall (map torus-window window))))
(torus-window board))))
更新:を私は質問を明確に支援するために、各パターンの具体的な例を追加しました。
合意。私はおそらくパラメータが違いを生むかもしれないと思ったのですが、 'apply#fn [c](map + c [1 1 1]))%&)[[-1 -1 -1]])' ' (apply(fn [c](map + c [1 11]))[[-1 -1 -1]]) 'は同等でした。 – noahlz