http://projecteuler.net/index.php?section=problems&id=25
yieldを使ってフィボナッチ数列を出してもいいですが、前にやったようにunfoldを使うと美しいですね。大きな数になるのでサフィックスIをつけるのを忘れてはいけません。
let count n = Seq.initInfinite (fun k -> k + n)
let F = Seq.unfold
(fun s -> Some((fst s, (snd s, (fst s) + (snd s))))) (1I, 1I)
let N = 1000
printfn "%d" (fst (Seq.head
(Seq.filter
(fun x -> (String.length (string (snd x))) = N)
(Seq.zip (count 1) F))))