Compartir a través de


Expresiones con procesamiento diferido (F#)

Las expresiones con procesamiento diferido no se evalúan inmediatamente, sino cuando realmente se necesita el resultado. Esto puede ayudar a mejorar el rendimiento del código.

let identifier = lazy ( expression )

Comentarios

En la sintaxis anterior, expression es código que se evalúa únicamente cuando se requiere un resultado, e identifier es un valor que almacena el resultado. El valor es de tipo Lazy<'T>, donde el tipo que se utiliza para 'T se determina a partir del resultado de la expresión.

Las expresiones de procesamiento diferido permiten mejorar el rendimiento restringiendo la ejecución de expresiones a los casos en los que realmente se necesita un resultado.

Para forzar la ejecución de una expresión, se llama al método Force. Force hace que la expresión se ejecute solamente una vez. Las llamadas subsiguientes a Force devuelven el mismo resultado, pero no ejecutan el código.

En el siguiente código, se muestra el uso de las expresiones con procesamiento diferido y de Force. En este código, el tipo de result es Lazy<int>, y el método Force devuelve un valor de tipo int.

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

La evaluación diferida (no así el tipo Lazy) también se utiliza para procesar secuencias. Para obtener más información, vea Secuencias (F#).

Vea también

Referencia

Módulo LazyExtensions

Otros recursos

Referencia del lenguaje F#