私はいくつかのClojure source codeを閲覧し、この機能に出くわした:Clojureでネストされたパラメータを解析する方法defn?
(defn draw-mask [app-state [r c]]
(let [x1 (+ 25 (* c 50))
y1 (+ 25 (* r 50))]
[:circle {:cx x1 :cy y1 :r 12 :fill "white"}]))
私は理解していないこと[app-state [r c]]
が解析される方法です。どのような典型的なデータ構造がこれに渡され、どのようにdefnがそれを解釈しますか? clojureのドキュメントでこれに言及していただければ、特にClojureDocs.org was of no help on the subject以降になります。
IIRC、すべての消滅は、 'deconstruct'(またはそのような何か)マクロを使用しています。リストの場合は 'first'、' rest'、 'nth'、そしてマップの場合はアクセサの代理人を呼び出します。ちょうど典型的なマクロ "マジック"。 – Carcigenicate
これは「破壊」です - http://clojure.org/guides/destructuringなどの良い文書を見つけるのに役立ちます。 –
...率直に言って、 (これは私がこれを読んでいる方法です)は、StackOverflowの良い質問になるには余りにも幅があります。上記のリンクを解除したページを見ると、答えが合理的にカバーできる内容よりもはるかに多くのコンテンツがあります。 –