Clojure を学ぶための最初の試みとして、Clojure を使って Project Euler を始めました。最初の課題を解決しました:
1000 未満の 3 または 5 の倍数の合計を求めます。
以前にPythonで解決しました:
sum(i for i in xrange(1000) if i%3==0 or i%5==0)
これは私の最初の Clojure の試みです:
(reduce +
(filter
(fn [x]
(or
(= 0 (mod x 3))
(= 0 (mod x 5))))
(range 1000)))
私はそれがどれほど冗長になったかについて実際に驚いていますが、それは私のスタイルとClojureイディオムの無知のせいだと確信しています.
この Clojure コードの慣用的なバージョンはどのようになりますか?