我正在尝试使用 F# 懒惰地创建一个序列。
序列定义如下:
三角形数列的第 n 项由下式给出, tn = ½n(n+1);所以前十个三角形数是:
1, 3, 6, 10, 15, 21, 28, 36, 45, 55, ...
这是我到目前为止所拥有的,但它似乎不起作用:
let tri_seq = 1.0 |> Seq.unfold (fun x -> match x with
| _ -> Some (x, 0.5*x*(x + 1.0)))
非常感谢谁能帮我弄清楚展开的工作原理。谢谢
编辑:我将第一个答案标记为正确,但它不起作用,但是我稍微修改了它并且它起作用了。
let tri_seq = 1.0 |> Seq.unfold (fun x -> Some (0.5 * x * (x + 1.0),x + 1.0))