SEQ.unfold < "Państwo,'T > Funkcja (F#)
Zwraca sekwencja zawiera elementy generowane przez danego obliczenia.
Ścieżka obszaru nazw/modułu: Microsoft.FSharp.Collections.Seq
Zestaw: FSharp.Core (w FSharp.Core.dll)
// Signature:
Seq.unfold : ('State -> 'T * 'State option) -> 'State -> seq<'T>
// Usage:
Seq.unfold generator state
Parametry
generator
Typ:'State -> 'T * 'State optionFunkcja, która przyjmuje bieżący stan i zwraca krotka opcji następnego elementu w sekwencji i wartość następnego stanu.
state
Typ:'StateWartość stanu początkowego.
Wartość zwracana
Sekwencja wynik.
Uwagi
Początkowy danego state przekazany argument generator elementu.Dla każdego IEnumerator elementy w strumieniu są generowane na żądanie przez zastosowanie generatora element do None wartość jest zwracana przez generator elementu.Każde wywołanie element generator zwraca nowy resztkowego state.
Strumień będą przeliczane przy każdym IEnumerator jest wymagane i podstawy w sekwencji.Sekwencja zwracane mogą być przekazywane między wątki bezpiecznie.Jednakże poszczególnych IEnumerator wygenerowany z sekwencji zwracane wartości nie jest dostępna jednocześnie.
Ta funkcja o nazwie Unfold w skompilowane zestawy.Jeżeli języka, niż F# lub przez odbicie, uzyskują dostęp do funkcji, należy użyć tej nazwy.
Przykład
Poniższy kod demonstruje użycie Seq.unfold do generowania sekwencji dwóch.Pierwszy generuje tylko sekwencji liczb całkowitych.Drugi generuje sekwencji liczb Fibonacciego składają się przez dodanie dwóch poprzednich liczb w sekwencji.Pierwsze dwie cyfry w sekwencji Fibonacciego są (1, 1), początkowe formularze state parametru.Stan na każdym kroku składa się z dwóch liczb, którego suma produkuje następny numer Fibonacciego.
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
Informacje o wersji
F# Core wersji biblioteki
Obsługiwane: 2.0, 4.0, przenośne