私は、Clojureを学ぶ最初のスタブとして、Clojureを使ってProject Eulerを始めました。この慣用のClojureですか?
は、私が以前にPythonでそれを解決してきた1000
以下の3または5の全ての倍数の和を探す::私は、最初の割り当てを解決してきました
sum(i for i in xrange(1000) if i%3==0 or i%5==0)
(reduce +
(filter
(fn [x]
(or
(= 0 (mod x 3))
(= 0 (mod x 5))))
(range 1000)))
私は実際にそれを得た方法、詳細については驚いていますが、私:これが私の最初のClojureの試みでありますそれは私のスタイルとClojureイディオムの無知のためだと確信しています。
このClojureコードの慣用バージョンはどのように見えますか?
おかげで多くのことを、! apply vs reduceを使用する利点は何でしょうか? – gumuz
'+'は変数arityを持っているので、 '+'を何度も実行することができません。実際には、argリストが2を超えると '+'は 'reduce'を使います(' + 'のソースを参照)ので、' reduce'を使うのと同じです。この例では、それは本当に自分のスタイルだけです。 – Kyle
もう一度お返事ありがとうございます。例えば、あなたがor引数を整列させた方法を主張するスタイルガイドがありますか? – gumuz