Capítulo 11. Evaluación perezosa
Este trabajo se ha traducido utilizando IA. Agradecemos tus opiniones y comentarios: translation-feedback@oreilly.com
Aunque la pereza suele verse como un defecto de carácter en las personas, puede considerarse una característica favorable en los lenguajes de programación. En términos informáticos, la pereza es el antagonista de la rigurosidad -o avidez- en laevaluación del código.
Este capítulo te mostrará cómo ser perezoso puede mejorar el rendimiento. Aprenderás la diferencia entre la evaluación estricta y la perezosa y su impacto en el diseño de tu código.
Pereza frente a rigor
El rigor de un lenguaje describe la semántica de cómo se evalúa tu código.
La evaluaciónestricta se produce en cuanto es posible, como al declarar o establecer una variable o al pasar una expresión como argumento. La evaluaciónno estricta, sin embargo, se produce cuando el resultado de una expresión es realmente necesario. De esta forma, las expresiones pueden tener un valor aunque una o varias subexpresiones no se evalúen.
El lenguaje de programación funcional Haskell tiene una semántica no estricta por defecto, evaluando las expresiones desde las más externas a las más internas. Esto te permite crear estructuras de control o secuencias de datos infinitas gracias a la separación de la creación y el consumo de expresiones.
Veamos el siguiente código Java estricto de un método sencillo que acepta dos argumentos pero utiliza sólo uno para su lógica:
int
add
(
int
x
,
int ...
Get Un enfoque funcional de Java now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.