### # Even Fibonacci numbers # Problem 2 # # 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. ### using Base.Iterators cache = Dict() function fib(n) if haskey(cache, n) return cache[n] end if n < 3 return n end cache[n] = fib(n - 1) + fib(n - 2) return cache[n] end # https://stackoverflow.com/questions/56137634/function-chaining-in-julia result = ( (fib(n) for n in 1:1_000_000) |> r -> takewhile(<(4_000_000), r) |> r -> Iterators.filter(x -> (x % 2) == 0, r) |> sum ) println(result)