Option.forall<'T> (Función de F#)
Evalúa el equivalente de List.forall para un tipo de opción.
Espacio de nombres/Ruta de acceso del módulo: Microsoft.FSharp.Core.Option
Ensamblado: FSharp.Core (en FSharp.Core.dll)
// Signature:
forall : ('T -> bool) -> 'T option -> bool
// Usage:
forall predicate option
Parámetros
predicate
Tipo: 'T -> boolFunción que se evalúa como un valor booleano cuando se proporciona un valor del tipo de opción.
option
Tipo: 'T opciónOpción de entrada.
Valor devuelto
true si la opción es None; de lo contrario, devuelve el resultado de aplicar el predicado al valor de la opción.
Comentarios
El resultado de evaluar la expresión forall p inp es match inp with None -> true | Some x -> p x.
Esta función se denomina ForAll 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.forall.
let isEven opt =
Option.forall (fun elem -> elem % 2 = 0) opt
printfn "%b" <| isEven (Some(2))
printfn "%b" <| isEven None
printfn "%b" <| isEven (Some(1))
// Use this function with an array of int options.
let forAllOptions function1 = List.forall (fun opt -> Option.forall function1 opt)
let list1 = [ for i in 1 .. 10 do yield Some(i) ]
let list2 = [ for i in 1 .. 10 do yield if (i % 2) = 0 then Some(i) else None ]
let list3 = [ for i in 1 .. 10 do yield if (i % 2) = 1 then Some(i) else None ]
let evalList list = printfn "%b" <| forAllOptions (fun value -> value % 2 = 0) list
let lists = [ list1; list2; list3 ]
List.iter evalList lists
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. |