私は問題に取り組んでい4clojure.comます (これは問題 33 からのものです)。
(#(for [x %, i (range %2)] x) [1 2 3] 2) ; --> '(1 1 2 2 3 3)
forにバインドxしてから[1 2 3]何かを2 回実行する (iにバインドされる)ことがわかりますが'(0 1)、 のような答えが期待できます'([1 2 3] [1 2 3])。このコードは何らかの形mapcatで出力を実行しているようです。
の docstring にforは以下が含まれます: Collections are iterated in a nested fashion, rightmost fastest.... iこれにより、 の値に関する0, 1, 2直感が得られますxが、何が起こっているのかを理解しているとは言えません。
どのように機能するかの私のメンタルモデルを改善するような方法で、何が起こっているのか誰か説明できますかfor? どうもありがとう!