Skip to content

Instantly share code, notes, and snippets.

@aktowns
Created November 19, 2010 16:34
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save aktowns/706732 to your computer and use it in GitHub Desktop.
Save aktowns/706732 to your computer and use it in GitHub Desktop.
> let rec fib (start,step,list) =
if (start > 4000001) then (1,start, start::list)
else fib (start+step, start, (start::list))
val fib : int * int * int list -> int * int * int list
> let start,max,list = fib (1,1,[])
val start : int = 1
val max : int = 5702887
val list : int list =
[5702887; 3524578; 2178309; 1346269; 832040; 514229; 317811; 196418; 121393;
75025; 46368; 28657; 17711; 10946; 6765; 4181; 2584; 1597; 987; 610; 377;
233; 144; 89; 55; 34; 21; 13; 8; 5; 3; 2; 1]
> list
|> List.filter (fun n->n%2=0)
|> List.fold (+) 0
val it : int = 4613732
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment