SEQ.unfold < "stát, t > Funkce (F#)
Vrátí pořadí prvků generovaných dané výpočtu.
Cesta k oboru názvů nebo modul: Microsoft.FSharp.Collections.Seq
Sestavení: FSharp.Core (v FSharp.Core.dll)
// Signature:
Seq.unfold : ('State -> 'T * 'State option) -> 'State -> seq<'T>
// Usage:
Seq.unfold generator state
Parametry
generator
Typ:'State -> 'T * 'State optionFunkce, která využívá aktuální stav a vrátí tuple možnost dalšího prvku sekvence a další hodnoty stavu.
state
Typ:'StateHodnota počátečního stavu.
Vrácená hodnota
Řada výsledků.
Poznámky
Dané počáteční state generátor prvek je předán argument.Pro každou IEnumerator prvky v proudu jsou generované na vyžádání použitím generátoru prvek, dokud None generátor prvek vrácena hodnota.Každé volání generátor prvku vrátí nové zbytkového state.
Datový proud budou přepočítávány pokaždé, když IEnumerator je požadován a vstupní posloupnosti.Vrácené sekvence může bezpečně předána mezi podprocesy.Však jednotlivé IEnumerator hodnoty generované ze sekvence vrácené neměli přístup souběžně.
Tato funkce se nazývá Unfold v kompilovaný sestavení.Pokud přistupujete k funkci jazyka než F# nebo prostřednictvím reflexe, tento název použijte.
Příklad
Následující kód ukazuje použití Seq.unfold ke generování dvě sekvence.První generuje pouze celá čísla sekvence.Druhý generuje sekvenci Fibonacci čísla, která se skládají přidáním dvou předchozích čísel v sekvenci.První dvě čísla v pořadí Fibonacci jsou (1, 1), která tvoří počáteční state parametr.Stát v každém kroku tvoří dvě čísla, jejichž součet vytváří další číslo Fibonacci.
let seq1 = Seq.unfold (fun state -> if (state > 20) then None else Some(state, state + 1)) 0
printfn "The sequence seq1 contains numbers from 0 to 20."
for x in seq1 do printf "%d " x
let fib = Seq.unfold (fun state ->
if (snd state > 1000) then None
else Some(fst state + snd state, (snd state, fst state + snd state))) (1,1)
printfn "\nThe sequence fib contains Fibonacci numbers."
for x in fib do printf "%d " x
Platformy
Windows 8, Windows 7, Windows Server 2012 Windows Server 2008 R2
Informace o verzi
F# základní verze knihovny
Podporovány: 2.0, 4.0, přenosné