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))))