Compartir a través de


Option.fold<'T,'State> (Función de F#)

Evalúa el equivalente de List.fold para una opción.

Espacio de nombres/Ruta de acceso del módulo: Microsoft.FSharp.Core.Option

Ensamblado: FSharp.Core (en FSharp.Core.dll)

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

// Usage:
fold folder state option

Parámetros

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

    Función para actualizar los datos de estado cuando se proporciona un valor en una opción.

  • state
    Tipo: 'State

    Estado inicial.

  • option
    Tipo: 'T opción

    Opción de entrada.

Valor devuelto

Devuelve el estado original si la opción es None; de lo contrario, devuelve el estado actualizado con la carpeta y el valor de la opción.

Comentarios

El resultado de evaluar la expresión fold f s inp es match inp with None -> s | Some x -> f s x.

Esta función se denomina Fold en los ensamblados compilados. Si obtiene acceso a la función desde un lenguaje distinto de F# o mediante reflexión, use este nombre.

Ejemplo

En el código siguiente, se muestra el uso de 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

Output

  

Plataformas

Windows 8, Windows 7, Windows Server 2012, Windows Server 2008 R2

Información de versiones

Versiones de la biblioteca básica de F#

Se admite en: 2.0, 4.0, portables

Vea también

Referencia

Core.Option (Módulo de F#)

Microsoft.FSharp.Core (Espacio de nombres de F#)