私は問題に取り組んでい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
? どうもありがとう!