Compartir a través de


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 -> bool

    Función que se evalúa como un valor booleano cuando se proporciona un valor del tipo de opción.

  • option
    Tipo: 'T opción

    Opció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

Core.Option (Módulo de F#)

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.