13 lines
368 B
Text
13 lines
368 B
Text
module Euler.Problem2 where
|
|
|
|
import Prelude
|
|
import Control.Lazy (defer)
|
|
import Data.Foldable (sum)
|
|
import Data.Int (even)
|
|
import Data.List.Lazy (List, filter, takeWhile, (:))
|
|
|
|
lazyFibList :: Int -> Int -> List Int
|
|
lazyFibList f1 f2 = f1 : defer \_ -> lazyFibList f2 (f1 + f2)
|
|
|
|
solution :: Int
|
|
solution = sum $ filter even $ takeWhile (_ < 4_000_000) $ lazyFibList 1 2
|