Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Tree: 00cefb7b79
Fetching contributors…

Cannot retrieve contributors at this time

26 lines (21 sloc) 0.601 kB
(*
* 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.
*)
use "lazy_utils.sml";
val fibs =
let
fun lazy fibLoop(a, b) =
Cons(b, fibLoop(b, a+b));
in
Cons(1, fibLoop(1, 2))
end;
val answer =
foldl op + 0
(takeWhile (fn x => x <= 4000000)
(sfilter (fn x => x mod 2 = 0) fibs));
Jump to Line
Something went wrong with that request. Please try again.