Sunteți pe pagina 1din 3

INSTITUTO TECNOLGICO DE TUXTLA GUTIRREZ

INGENIERA EN SISTEMAS COMPUTACIONALES

INVESTIGACIN EVALUACIN PEREZOSA

ALUMNO:
PREZ CAMACHO JESS ASMETH 12270757

PROGRAMACIN LGICA Y FUNCIONAL

GRUPO: S8A

CATEDRTICO:
M.C. GALDINO BELIZARIO NANGO SOLS



Carretera Panamericana Km 1080
C. P. 29050. Apartado Postal: 599
Tel. 6150380 ext. 321
Tuxtla Gutirrez Chiapas

EVALUACIN PEREZOSA(LAZY)

Evaluacin perezosa (Lazy Evaluation) consiste en no evaluar un argumento hasta que no se
necesita.
La evaluacin perezosa (del ingls lazy evaluation) o llamada por necesidad es una estrategia
de evaluacin que retrasa el clculo de una expresin hasta que su valor sea necesario, y que
tambin evita repetir la evaluacin en caso de ser necesaria en posteriores ocasiones. Esta
comparticin del clculo puede reducir el tiempo de ejecucin de ciertas funciones de forma
exponencial, comparado con otros tipos de evaluacin.
Uno de los beneficios de la evaluacin perezosa consiste en la posibilidad de manipular
estructuras de datos infinitas.
Evidentemente, no es posible construir o almacenar un objeto infinito en su totalidad. Sin
embargo, gracias a la evaluacin perezosa se puede construir objetos potencialmente infinitos
pieza a pieza segn las necesidades de evaluacin.
Los beneficios de la evaluacin perezosa son:
El incremento en el rendimiento al evitar clculos innecesarios, y en tratar condiciones de error
al evaluar expresiones compuestas.
La capacidad de construir estructuras de datos potencialmente infinitas.
La capacidad de definir estructuras de control como abstracciones, en lugar de operaciones
primitivas.
La evaluacin perezosa puede tambin reducir el consumo de memoria de una aplicacin, ya
que los valores se crean solo cuando se necesitan. Sin embargo, es difcil de combinar con las
operaciones tpicas de programacin imperativa, como el manejo de excepciones o las
operaciones de entrada/salida, porque el orden de las operaciones puede quedar
indeterminado. Adems, la evaluacin perezosa puede conducir a fragmentar la memoria.
Lo contrario de la evaluacin perezosa sera la evaluacin acaparadora, o evaluacin estricta,
que es el modo de evaluacin por defecto en la mayora de los lenguajes de programacin.







Tcnicas de evaluacin perezosa en programacin funcional


Para los ejemplos se considera la funcin
mult :: (Int,Int) Int
mult (x,y) = x * y

Evaluacin mediante paso de parmetros por valor (o por ms internos):

mult (1+2,2+3)
= mult (3,5) [por def. de +]
= 3*5 [por def. de mult]
= 15 [por def. de *]

Evaluacin mediante paso de parmetros por nombre (o por ms externos):

mult (1+2,2+3)
= (1+2)*(3+5) [por def. de mult]
= 3*5 [por def. de +]

Evaluacin con lambda expresiones

mult (1+2) (2+3)


= mult 3 (2+3) [por def. de +]
= (y 3*y) (2+3) [por def. de mult]
= (y 3*y) 5 [por def. de +]
= 3*5 [por def. de +]
= 15 [por def. de *]

S-ar putea să vă placă și