Seq.unfold<'State,'T> İşlevi (F#)
Verilen hesaplama tarafından oluşturulan öğeleri içeren bir dizi döndürür.
Ad alanı/modül yolu: Microsoft.FSharp.Collections.Seq
Derleme: FSharp.Core (FSharp.Core.dll içinde)
// Signature: Seq.unfold : ('State -> ('T * 'State) option) -> 'State -> seq<'T> // Usage: Seq.unfold generator state
Parametreler
generator
Tür: 'State -> 'T * 'State optionGeçerli durumu alan ve bir seçenek tanımlama grubu sonraki öğenin sıralamadaki ve sonraki durumu değeri döndüren bir işlev.
state
Tür: 'Stateİlk durumu değeri.
Dönüş Değeri
Sonuç dizisi.
Notlar
Belirtilen ilk state bağımsız değişkeni öğe oluşturucuya geçirilir.Her IEnumerator öğeleri akışında kadar öğe oluşturucusunu uygulayarak oluşturulan isteğe bağlı olan bir None öğesi Oluşturucu tarafından döndürülen değer.Yeni bir fazlalığı öğesi oluşturucusuna her çağrı döndürür state.
Akış her zaman hesaplanacaktır bir IEnumerator istenen ve için sıra yinelendiğinde.Döndürülen dizi iş parçacıkları arasında güvenle geçirilebilir.Ancak, tek tek IEnumerator değerleri döndürülen serisinden oluşturulan erişilemez aynı anda.
Bu işlev adlı Unfold derlenmiş derlemeler.İşlev farklı bir dili F #, yansıma aracılığıyla erişiyorsanız bu adı kullanın.
Örnek
Aşağıdaki kod kullanımını gösterir Seq.unfold iki diziyi oluşturmak için.İlk yalnızca bir tamsayı dizisini oluşturur.İkinci Fibonacci numaraları, iki önceki sayıları sırada ekleyerek oluşan bir dizi oluşturur.Fibonacci sıralamadaki ilk iki sayı, ilk forms misiniz (1, 1), state parametresi.Her adımında durumu sonraki Fibonacci sayısı, toplam üretir iki numaralarını oluşur.
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
Platformlar
Windows 8, Windows 7, Windows Server 2012, Windows Server 2008 R2
Sürüm Bilgileri
F# Çekirdek Kitaplık Sürümleri
Desteklendiği sürümler: 2.0, 4.0, Taşınabilir