For faster navigation, this Iframe is preloading the Wikiwand page for Evaluación perezosa.

Evaluación perezosa

En la teoría de lenguajes de programación, la evaluación perezosa (del inglés lazy evaluation) o llamada por necesidad es una estrategia de evaluación que retrasa el cálculo de una expresión hasta que su valor sea necesario, y que también evita repetir la evaluación en caso de ser necesaria en posteriores ocasiones. Esta compartición del cálculo puede reducir el tiempo de ejecución de ciertas funciones de forma exponencial, comparado con otros tipos de evaluación.

Los beneficios de la evaluación perezosa son:

  • El incremento en el rendimiento al evitar cálculos innecesarios, y en tratar condiciones de error al evaluar expresiones compuestas.
  • La capacidad de definir estructuras de control como abstracciones, en lugar de operaciones primitivas.

Este método de evaluación se implementa comúnmente encapsulando cada expresión en una función que, cuando sea computada, devolverá el valor deseado de la expresión. De esta manera, cuando se necesite el resultado, se ejecutará la función creada para conseguirlo.

La evaluación perezosa puede también reducir el consumo de memoria de una aplicación, ya que los valores se crean solo cuando se necesitan. Sin embargo, es difícil de combinar con las operaciones típicas de programación imperativa, como el manejo de excepciones o las operaciones de entrada/salida, porque el orden de las operaciones puede quedar indeterminado. Además, la evaluación perezosa puede conducir a fragmentar la memoria.

La evaluación perezosa se combina frecuentemente con memorización, tal y como lo describe Jon Bentley en Writing Efficient Programs[1]​ (Escribiendo Programas Eficientes). Después de que se compute el valor de una función para un parámetro o una serie de éstos, el resultado se almacena en una tabla de consulta que está organizada según los valores de estos parámetros; la siguiente vez que se le llame a la función, antes se consulta la tabla para determinar si ya está disponible el resultado para esa combinación de parámetros. Si es el caso, la función devuelve el resultado almacenado previamente. Si no, la se evalúa la función y se añade el resultado a la tabla para una posterior reutilización.

Lo contrario de la evaluación perezosa es la evaluación acaparadora, o evaluación estricta, que es el modo de evaluación por defecto en la mayoría de los lenguajes de programación.

Referencias

[editar]
  1. Bentley, Jon Louis. Writing Efficient Programs. Prentice-Hall, 1985. ISBN 978-0139702440


{{bottomLinkPreText}} {{bottomLinkText}}
Evaluación perezosa
Listen to this article

This browser is not supported by Wikiwand :(
Wikiwand requires a browser with modern capabilities in order to provide you with the best reading experience.
Please download and use one of the following browsers:

This article was just edited, click to reload
This article has been deleted on Wikipedia (Why?)

Back to homepage

Please click Add in the dialog above
Please click Allow in the top-left corner,
then click Install Now in the dialog
Please click Open in the download dialog,
then click Install
Please click the "Downloads" icon in the Safari toolbar, open the first download in the list,
then click Install
{{::$root.activation.text}}

Install Wikiwand

Install on Chrome Install on Firefox
Don't forget to rate us

Tell your friends about Wikiwand!

Gmail Facebook Twitter Link

Enjoying Wikiwand?

Tell your friends and spread the love:
Share on Gmail Share on Facebook Share on Twitter Share on Buffer

Our magic isn't perfect

You can help our automatic cover photo selection by reporting an unsuitable photo.

This photo is visually disturbing This photo is not a good choice

Thank you for helping!


Your input will affect cover photo selection, along with input from other users.

X

Get ready for Wikiwand 2.0 🎉! the new version arrives on September 1st! Don't want to wait?