21 lines
615 B
Haskell

-- Each new term in the Fibonacci sequence is generated by adding the previous two terms. By starting with 1 and 2, the first 10 terms will be:
--
-- 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ...
--
-- By considering the terms in the Fibonacci sequence whose values do not exceed four million, find the sum of the even-valued terms.
fib :: Int -> Int
fib 0 = 0
fib 1 = 1
fib n = fib (n - 1) + fib (n - 2)
sumEvenFib :: Int
sumEvenFib = sum $ filter even $ takeWhile (<= 4000000) (map fib [0 ..])
main = do
let result = sumEvenFib
putStrLn $
"Project Euler, Problem 2\n"
++ "Answer: "
++ show result