嗨有没有办法用seq解决f#中的连续分数,而不是列表?
let cfToScalar cf = List.foldBack (fun elem acc -> float elem + (1.0 / float acc)) cf System.Double.MaxValue
喜欢这样,但我想使用seq而不是列表
答案 0 :(得分:2)
正如我在评论中所说,您可以将List.foldback
更改为Seq.foldback
,您的功能现在将接受序列。另请注意,Sehnsucht说,foldback
当前的实现需要转换为数组,因此无限序列的输入将无效。
另一方面,由于F# 4.0's normalization of the collection modules现在可以使用List / Array / Seq模块中的大多数函数替换另一个模块,因此可以使用。{/ p>