계산식 작동 방법에 대해 자세히 알아 내려고 if
문의 then
블록을 계산 한 후 나머지 표현식을 건너 뛰는 작성기를 코딩하려고 시도하면 워크 플로 자체가 true
으로 계산됩니다. true
으로 계산 된 문이 if
인 경우 워크 플로에서 false
을 반환해야합니다. 예를 들어F # "exit early"계산식?
:
여기let mutable x = 0
let result =
earlyExit {
if false then x <- 99
if true then x <- 33
if true then x <- 11
}
, result
는 true
이어야하며 x
는 33
이어야한다.
내가 들어 왔 가장 가까운
은 다음과 같습니다type EarlyExitBuilder() =
member this.Combine (a, b) = a || b()
member this.Delay fn = fn
member this.Run fn = fn()
member this.Zero() = false
false
로 평가 워크 플로우 결과
... 및 11
-x
.
이 예제는 내 예제의 구문을 사용합니까?
관련 항목 : http://stackoverflow.com/questions/13710700/f-computation-expression-for-nested-boolean-tests – bytebuster