Seq.initInfinite<'T> 函数 (F#)
生成一个新序列,当进行迭代时,该序列将通过调用给定函数来返回连续的元素。
命名空间/模块路径: Microsoft.FSharp.Collections.Seq
程序集:FSharp.Core(在 FSharp.Core.dll 中)
// Signature:
Seq.initInfinite : (int -> 'T) -> seq<'T>
// Usage:
Seq.initInfinite initializer
参数
initializer
类型:int -> 'T在序列中从给定索引处开始生成项的函数。
返回值
结果序列。
备注
将不会保存调用函数的结果,也就是说,将根据需要重新应用函数以重新生成元素。 将向函数传递所生成项的索引。
迭代可继续进行,最大可达到 Int32.MaxValue。
此函数在编译的程序集中名为 InitializeInfinite。 如果从 F# 以外的语言中访问函数,或通过反射访问成员,请使用此名称。
线程安全
返回的序列可在线程间安全地传递。 但是,不应以并发方式访问从返回的序列中生成的单个 IEnumerator 值。
示例
以下示例演示如何使用 Seq.initInfinite 来创建符号交替的序列 1/n^2。
let seqInfinite = Seq.initInfinite (fun index ->
let n = float( index + 1 )
1.0 / (n * n * (if ((index + 1) % 2 = 0) then 1.0 else -1.0)))
printfn "%A" seqInfinite
平台
Windows 8,Windows 7,Windows server 2012中,Windows server 2008 R2
版本信息
F#核心库版本
支持:2.0,4.0,可移植