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 -> 'StateFunción para actualizar los datos de estado cuando se proporciona un valor en una opción.
state
Tipo: 'StateEstado inicial.
option
Tipo: 'T opciónOpció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 7, Windows Vista SP2, Windows XP SP3, Windows XP x64 SP2, Windows Server 2008 R2, Windows Server 2008 SP2, Windows Server 2003 SP2
Información de versiones
Runtime de F#
Se admite en las versiones: 2.0, 4.0
Silverlight
Se admite en la versión: 3
Vea también
Referencia
Microsoft.FSharp.Core (Espacio de nombres de F#)
Historial de cambios
Fecha |
Historial |
Motivo |
---|---|---|
Mayo de 2010 |
Se ha agregado un ejemplo de código. |
Mejora de la información. |