¿Qué es la evaluación perezosa y cuando usarlo? | Programador Web Valencia

¿Qué es la evaluación perezosa y cuando usarlo?

1 minuto

Memoria

Hablamos de una técnica de programación en la que una expresión o una función no se evalúa hasta que no sea necesario. Esto significa que la expresión se evalúa solo cuando los resultados se necesitan para una operación en particular, en lugar de evaluarla de inmediato. Esto se usa para mejorar el rendimiento y la eficiencia del programa, al evitar evaluar expresiones innecesarias.

Veamos un ejemplo en Python:

def lazy_sum(*args):
    def sum():
        resultado = 0
        for num in args:
            resultado = resultado + num
        return resultado
    return sum

total = lazy_sum(1, 2, 3, 4, 5) # Aún no se ha calculado la suma
# En "total" solo esta la expresión de la operación

print(total()) # Ejecutamos la operación cuando lo necesitamos
# En otras palabras: al imprimir

# Devuelve: 15

Se debe utilizar cuando una función o expresión no se necesita de inmediato para una operación. También puede ser útil para mejorar la legibilidad de los programas al permitir que se expresen conceptos complejos de forma sencilla.

Muchos lenguajes de programación modernos, como Haskell, Clojure, Python y JavaScript, utilizan evaluación perezosa. Esto permite a los programadores escribir código más limpio y eficiente. Esta técnica es especialmente útil en lenguajes funcionales, como Haskell, donde el código se organiza en forma de expresiones.

Esta y otras técnicas nos ayudarás a optimizar el software, pero sobretodo a entender como funciona ciertas optimizaciones internas en nuestros lenguajes funcionales favoritos. Ahora que ya conoces la magia que hay detrás, podrás replicarlo y utilizarlo con inteligencia.

Esta obra está bajo una Licencia Creative Commons Atribución-NoComercial-SinDerivadas 4.0 Internacional.

Atribución/Reconocimiento-NoComercial-SinDerivados 4.0 Internacional

¿Me ayudas?

Comprame un café
Pulsa sobre la imagen

No te sientas obligado a realizar una donación, pero cada aportación mantiene el sitio en activo logrando que continúe existiendo y sea accesible para otras personas. Además me motiva a crear nuevo contenido.

Comentarios

{{ comments.length }} comentarios

Nuevo comentario

Nueva replica  {{ formatEllipsisAuthor(replyComment.author) }}

Acepto la política de Protección de Datos.

Escribe el primer comentario

Tal vez también te interese...