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 -> boolFonction qui devient booléenne lorsqu'une valeur du type d'option est fournie.
option
Type : 'T optionOption 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
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. |