Seq.cache<'T> – funkce (F#)
Vrátí číselné řady, která odpovídá verzi vstupní posloupnosti uložené v mezipaměti.
Cesta k oboru názvů nebo modul: Microsoft.FSharp.Collections.Seq
Sestavení: FSharp.Core (v FSharp.Core.dll)
// Signature:
Seq.cache : seq<'T> -> seq<'T>
// Usage:
Seq.cache source
Parametry
source
Typ: SEQ.<'T>Vstupní sekvence.
Výjimky
Výjimka |
Podmínka |
---|---|
Vyvolána při vstupní posloupnost je null. |
Vrácená hodnota
Řada výsledků.
Poznámky
Tato posloupnost výsledek bude mít stejné prvky jako vstupní sekvence.Výsledek lze vytvořit výčet vícekrát.Vstupní posloupnosti výčtu maximálně jednou a pouze pokud je to nutné.Ukládání do mezipaměti posloupnost je obvykle užitečné, když opakovaně hodnocení v původním pořadí položek je výpočetně náročné nebo pokud iterace sekvence má vedlejší účinky, které uživatel nechce opakovat vícekrát.Po spuštění výčtu vstupní sekvence jeho výčtu budou uchovány aktivní tímto objektem dokud výčtu.V tomto okamžiku bude realizována čítače výčtu.Čítač může být vyřazený a podkladové mezipaměti úložiště uvolní převedením objektu vráceného sekvenci zadejte IDisposablea volání Dispose metoda pro tento objekt.Objekt sekvence může být proveden znovu a bude použit čerstvé enumerator.
Tato funkce se nazývá Cache 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í příklad kódu ukazuje, jak použít Seq.cache , aby recomputing prvky sekvence.
// Recursive isprime function.
let isPrime n =
let rec check i =
i > n/2 || (n % i <> 0 && check (i + 1))
check 2
let seqPrimes = seq { for n in 2 .. 10000 do if isPrime n then yield n }
// Cache the sequence to avoid recomputing the sequence elements.
let cachedSeq = Seq.cache seqPrimes
for index in 1..5 do
printfn "%d is prime." (Seq.nth (Seq.length cachedSeq - index) cachedSeq)
Výsledek
Zabezpečení vlákna
Výčet sekvence výsledek je podprocesu v tom smyslu, že více nezávislých IEnumerator hodnoty mohou být použity současně z různých podprocesů (podprocesu jsou přístupy k tabulce vnitřní lookaside).Jednotlivé IEnumerator není obvykle bezpečné podprocesy a neměli přístup souběžně.
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é