gpt4 book ai didi

f# - F#中的Seq.unfold解释

转载 作者:行者123 更新时间:2023-12-04 22:02:33 32 4
gpt4 key购买 nike

我正在尝试使用 F# 懒惰地创建一个序列。

序列定义如下:

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, ...



这是我到目前为止所拥有的,但似乎不起作用:
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))

最佳答案

首先,如果您只有一个案例,为什么要使用 match 呢?

let tri_seq = 1.0 |> Seq.unfold (fun x -> Some (x, 0.5 * x * (x + 1.0)))

其次,什么“似乎不起作用”?你知道你产生了一个无限列表吗?

/编辑:为了完整起见,这是正确的解决方案,OP发现自己并作为评论发布:
let tri_seq = 
1.0 |> Seq.unfold (fun x -> Some (0.5 * x * (x + 1.0), x + 1.0))

关于f# - F#中的Seq.unfold解释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/533633/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com