【发布时间】:2010-10-06 17:25:36
【问题描述】:
我正在尝试使用 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))
【问题讨论】:
标签: f# seq.unfold