notes/.vscode/extensions/eckertalex.borealis-1.0.2/demo/purescript.purs
2021-11-05 11:26:45 -07:00

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