Seq.unfold explanation in F#
问题 I am trying to create a sequence lazily by using F#. The sequence is defined as follows: The nth term of the sequence of triangle numbers is given by, tn = ½n(n+1); so the first ten triangle numbers are: 1, 3, 6, 10, 15, 21, 28, 36, 45, 55, ... Here is what I have so far but it dosn't seem to work: let tri_seq = 1.0 |> Seq.unfold (fun x -> match x with | _ -> Some (x, 0.5*x*(x + 1.0))) Thank you very much who can help me figure out how unfold works. Thanks Edit: I marked the first answer as