मैं labrepl के माध्यम से अपने रास्ते काम कर रहा हूँ और मैं कुछ कोड है कि इस पद्धति का अनुसरण करता देखा:clojure: (एफ एन coll लागू) बनाम (लागू # (लागू fn% और) coll)
;; 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))))
अद्यतन: मैं मदद करने के लिए सवाल स्पष्ट करने के लिए प्रत्येक पैटर्न की एक ठोस उदाहरण गयी।
से सहमत प्रश्न को संपादित किया। मैंने सोचा कि शायद पैरामीटर एक फर्क पड़ सकता है, लेकिन (लागू # (लागू करें (एफएन [सी] (मानचित्र + सी [1 1 1]))% और) [[-1 -1 -1]]) '' (लागू करें (एफएन [सी] (मानचित्र + सी [1 1 1])) [[-1 -1 -1]]) 'बराबर थे। – noahlz