Funzione Option.forall<'T> (F#)

Valuta l'equivalente di List.forall per un tipo di opzione.

Percorso spazio dei nomi/modulo: Microsoft.FSharp.Core.Option

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

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

// Usage:
forall predicate option

Parametri

  • predicate
    Tipo: 'T -> bool

    Funzione che esegue una valutazione di un valore ottenuto dal tipo di opzione restituendo un booleano.

  • option
    Tipo: 'T option

    Opzione di input.

Valore restituito

true se l'opzione è None, in caso contrario restituisce il risultato dell'applicazione del predicato al valore dell'opzione.

Note

L'espressione forall p inp restituisce match inp with None -> true | Some x -> p x.

Questa funzione è denominata ForAll negli assembly compilati. Utilizzare questo nome se si accede alla funzione da un linguaggio diverso da F# o tramite reflection.

Esempio

Nel codice riportato di seguito viene illustrato l'utilizzo di 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

  

Piattaforme

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

Informazioni sulla versione

F# Runtime

Supportato in: 2.0, 4.0

Silverlight

Supportato in: 3

Vedere anche

Riferimenti

Modulo Core.Option (F#)

Spazio dei nomi Microsoft.FSharp.Core (F#)

Cronologia delle modifiche

Data

Cronologia

Motivo

Maggio 2010

Aggiunto esempio di codice.

Miglioramento delle informazioni.