다음을 통해 공유


지연 계산(F#)

지연 계산은 즉시 계산되지 않고 결과가 실제로 필요할 때 수행되는 계산을 말합니다. 이와 같은 계산 방식을 사용하면 코드의 성능을 향상시킬 수 있습니다.

let identifier = lazy ( expression )

설명

위 구문에서 expression은 결과가 필요할 때만 계산되는 코드이고 identifier는 결과를 저장하는 값입니다. 값은 Lazy<'T> 형식입니다. 여기서 'T에 사용되는 실제 형식은 식의 결과에 따라 결정됩니다.

지연 계산을 사용하면 결과가 필요한 상황에서만 계산을 실행하도록 제한하여 성능을 향상시킬 수 있습니다.

계산을 강제로 수행하려면 Force 메서드를 호출하면 됩니다. Force를 호출하면 계산이 한 번만 실행됩니다. 이후에 Force를 계속하여 호출하면 동일한 결과가 반환되지만 이때는 어떠한 코드도 실제로 실행되지 않습니다.

다음 코드에서는 지연 계산과 Force를 사용하는 방법을 보여 줍니다. 이 코드에서 result의 형식은 Lazy<int>이고 Force 메서드는 int를 반환합니다.

let x = 10
let result = lazy (x + 10)
printfn "%d" (result.Force())

지연 계산은 시퀀스에도 사용되지만 Lazy 형식은 시퀀스에 사용되지 않으므로 혼동하지 않도록 주의해야 합니다. 자세한 내용은 시퀀스(F#)를 참조하십시오.

참고 항목

참조

LazyExtensions 모듈

기타 리소스

F# 언어 참조