私は Haskell にはかなり慣れていません。問題は、400 万以下のすべての偶数フィボナッチ数の合計を見つけることです。リストが使えません。
私が正しく理解していれば、リストを使用しているため、以下の解決策は間違っています。
my_sum = sum $ filter (odd) $ takeWhile (< 4000000) fibs
ここで、 fibsはすべてのフィボナッチ数のリストです。
どういうわけか、リストの観点から Haskell を考えないのは難しいと思います。この問題の解決策を教えてくれる人はいますか?
よろしく
編集:
誰かが興味を持っているなら、私はこの問題を解決しました。これがコードです(非常に不器用に見えますが、それでも動作します):
findsum threshold = findsum' 0 1 0 threshold
findsum' n1 n2 accu t
| n2 > t = accu
| odd n2 = findsum' n2 n3 accu t
| otherwise = findsum' n2 n3 accu2 t
where
n3 = n2 + n1
accu2 = accu + n2