共用方式為


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,可攜式執行檔 (PE)。

請參閱

參考

Collections.Seq 模組 (F#)

Microsoft.FSharp.Collections 命名空間 (F#)