// Create an infinite list of fibonacci numbers. let fibs = let generator state = let cur, next = state if cur < 0 then // overflow None else let next' = cur + next let state' = next, next' Some (cur, state') (0, 1) |> Seq.unfold generator // Take the first twenty items from the list. let first20 = Seq.take 20 fibs |> Seq.toArray // Print the finite list. printfn "%A" first20