使用seq在f#中继续分数

时间:2016-10-16 12:54:12

标签: algorithm list f# functional-programming sequence

嗨有没有办法用seq解决f#中的连续分数,而不是列表?

let cfToScalar cf = List.foldBack (fun elem acc -> float elem + (1.0 / float acc)) cf System.Double.MaxValue

喜欢这样,但我想使用seq而不是列表

1 个答案:

答案 0 :(得分:2)

正如我在评论中所说,您可以将List.foldback更改为Seq.foldback,您的功能现在将接受序列。另请注意,Sehnsucht说,foldback当前的实现需要转换为数组,因此无限序列的输入将无效。

另一方面,由于F# 4.0's normalization of the collection modules现在可以使用List / Array / Seq模块中的大多数函数替换另一个模块,因此可以使用。{/ p>