通过F#中的条件公式创建循环序列

费菲拉克特

美好的一天。创建序列(可能是有限的)或通过以下公式列出的最佳方法是什么?

在此处输入图片说明

在此处输入图片说明

例如,从1到9

1,2,4,5,10,11,22,23,46

我认为可以在其中使用List.foldList.scan,但是我不知道在哪里写yield

托邦德

您可以使用可变值和for循环来实现。或者,可以使用unfold

Seq.unfold (fun (a,i) -> 
    let a' = 
        if i % 2 = 0
        then a*2
        else a+1
    Some (a', (a',i+1)))
    (1,1)
|> Seq.append [1]

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章