Udostępnij za pośrednictwem


Option.fold<'T,'State> — Funkcja (F#)

Wynikiem jest równoważne z List.fold opcji.

Ścieżka obszaru nazw/modułu: Microsoft.FSharp.Core.Option

Zgromadzenie: FSharp.Core (w FSharp.Core.dll)

// Signature:
fold : ('State -> 'T -> 'State) -> 'State -> 'T option -> 'State

// Usage:
fold folder state option

Parametry

  • folder
    Typ:'State -> 'T -> 'State

    Funkcja dane o stanie, gdy wartość opcji aktualizacji.

  • state
    Typ:'State

    Stan początkowy.

  • option
    Type: 'Toption

    Opcja wprowadzania.

Wartość zwracana

Pierwotnego stanu, jeśli opcja jest None, w przeciwnym razie zwraca zaktualizowane Państwo z folderu i wartość opcji.

Uwagi

Wyrażenie fold f s inp wynikiem match inp with None -> s | Some x -> f s x.

Ta funkcja o nazwie Fold 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 ilustruje użycie Option.fold.

let consOption list opt =
    Option.fold (fun state value -> value :: state) list opt
printfn "%A" <| consOption [1 .. 10] None
printfn "%A" <| consOption [1 .. 10] (Some(0))

// Read input from the console, and if the input parses as 
// an integer, cons to the list. 
let readNumber () =
    let line = System.Console.ReadLine()
    let (success, value) = System.Int32.TryParse(line)
    if success then Some(value) else None
let mutable list1 = []
let mutable count = 0
while count < 5 do
    printfn "Enter a number: "
    list1 <- consOption list1 (readNumber())
    printfn "New list: %A" <| list1
    count <- count + 1

Dane wyjściowe

  

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

Zobacz też

Informacje

Core.Option — Moduł (F#)

Microsoft.FSharp.Core — Przestrzeń nazw (F#)