再帰を使用してClojureのプロジェクトオイラー問題を解決しようとしています。問題の説明は次のとおりです。
3または5の倍数である10未満のすべての自然数をリストすると、3、5、6、および9になります。これらの倍数の合計は23です。
1000未満の3または5のすべての倍数の合計を求めます。
ただし、以下のコードは間違った答えを与えるようです。私は何が間違っているのですか?
(defn m?
[x]
(or (= (rem x 3)) (= (rem x 5))))
(defn sum-m
[limit sum]
(if (= limit 0)
sum
(recur (dec limit)
(if (m? limit)
(+ sum limit)
sum))))
(sum-m (dec 1000) 0)