Partager via


Option.forall<'T>, fonction (F#)

Évalue l'équivalent de List.forall pour un type d'option.

Espace de noms/Chemin du module : Microsoft.FSharp.Core.Option

Assembly : FSharp.Core (in FSharp.Core.dll)

// Signature:
forall : ('T -> bool) -> 'T option -> bool

// Usage:
forall predicate option

Paramètres

  • predicate
    Type : 'T -> bool

    Fonction qui devient booléenne lorsqu'une valeur du type d'option est fournie.

  • option
    Type : 'T option

    Option d'entrée.

Valeur de retour

true si l'option est None ; sinon, retourne le résultat de l'application du prédicat à la valeur de l'option.

Notes

L'expression forall p inp renvoie la valeur match inp with None -> true | Some x -> p x.

Cette fonction se nomme ForAll dans les assemblys compilés. Si vous accédez à la fonction à partir d'un langage autre que F# ou par réflexion, utilisez ce nom.

Exemple

Le code suivant illustre l'utilisation 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

Sortie

  

Plateformes

Windows 7, Windows Vista SP2, Windows XP SP3, Windows XP x64 SP2, Windows Server 2008 R2, Windows Server 2008 SP2, Windows Server 2003 SP2

Informations de version

Runtime F#

Pris en charge dans : 2.0, 4.0

Silverlight

Prise en charge dans : 3

Voir aussi

Référence

Core.Option, module (F#)

Microsoft.FSharp.Core, espace de noms (F#)

Historique des modifications

Date

Historique

Motif

Mai 2010

Ajout d'un exemple de code

Améliorations apportées aux informations.