다음을 통해 공유


Option.forall<'T> 함수(F#)

업데이트: 2010년 5월

한 옵션에 대해 동일한 List.forall을 계산합니다.

네임스페이스/모듈 경로: Microsoft.FSharp.Core.Option

어셈블리: FSharp.Core(FSharp.Core.dll)

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

// Usage:
forall predicate option

매개 변수

  • predicate
    형식: 'T -> bool

    옵션 형식에서 값이 지정될 때 부울이 되는 함수입니다.

  • option
    형식: 'T option

    입력 옵션입니다.

반환 값

옵션이 None이면 true를 반환하고, 그렇지 않으면 옵션 값에 조건자를 적용한 결과를 반환합니다.

설명

식 forall p inp는 match inp with None -> true | Some x -> p x으로 계산됩니다.

컴파일된 어셈블리에서 이 함수의 이름은 ForAll입니다. F# 이외의 언어에서 함수에 액세스하거나 리플렉션을 통해 함수에 액세스하는 경우 이 이름을 사용합니다.

예제

다음 코드에서는 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

  

플랫폼

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

버전 정보

F# 런타임

지원되는 버전: 2.0, 4.0

Silverlight

지원되는 버전: 3

참고 항목

참조

Core.Option 모듈(F#)

Microsoft.FSharp.Core 네임스페이스(F#)

변경 기록

날짜

변경 내용

이유

2010년 5월

코드 예제를 추가했습니다.

향상된 기능 관련 정보