我对Haskell很新.问题是找到所有偶数Fibonacci数不超过4百万的总和.我不能使用列表.
如果我理解正确,下面的解决方案是错误的,因为它使用列表:
my_sum = sum $ filter (odd) $ takeWhile (< 4000000) fibs
Run Code Online (Sandbox Code Playgroud)
其中fibs是所有Fibonacci数的列表.
不知何故,我发现在列表方面很难不考虑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
Run Code Online (Sandbox Code Playgroud)