多少慣れてきました

Clojureに少しづつですが慣れてきました。

今日はネットにあった問題をClojureで書いてみたので、ちょっと公開してみます。

まず問題が

 1000 未満の 3 か 5 の倍数になっている数字の合計を求めよ

 

でコードは

まず3と5の倍数をとる関数を作成

  (defn get3or5 [x]

    (if (or (zero? (rem x 3)) (zero? (rem x 5))) x))

 

そして3と5の倍数だけで任意の数の中身を持つシーケンスを作る関数を作成

  (defn array3or5 [int]

    (for [n (take int (iterate inc 1)) :when (get3or5 n)] n))

 

あとはシーケンスの中身を全部足す

  (reduce + (array3or5 999))

 

結果は233168でした。まぁ当ってるかわかんないんですけど。

 

 

やっぱりカッコが多いですね。

どこでカッコを終わらせればいいか不安になってきます。

実際エラーを連発させました。