Вы находитесь на странице: 1из 4

INGENIERIA EN SISTEMAS

COMPUTACIONALES

MATERIA: PROGRAMACIN LGICA Y FUNCIONAL

CATEDRTICO: AGUILAR ORTIZ GABRIELA

ALUMNA: DE LA LUZ CASTELLANOS ERIKA

GRUPO: ISA AULA: I13 HORARIO: 10-11 HRS

SEMESTRE: AGO-DIC/2012


TRABAJO:
INVESTIGACIN






2
QU ES LA EVALUACIN PEREZOSA?
Evaluacin impaciente (eager): el evaluador hace todo lo que puede. Corresponde
a llamada por-valor.
Evaluacin perezosa (lazy):
El evaluador hace solamente lo preciso. Corresponde a llamada por-
necesidad.
Significa: Haz slo lo que te pida un patrn a la izquierda de una ecuacin o
cualificador (where o let).
Es una estrategia de evaluacin que retrasa la evaluacin de una expresin
hasta que el valor de esto realmente se requiera (evaluacin no estricta) y
que tambin evita evaluaciones repetidas (compartimiento de ciencias
informticas). El compartimiento puede reducir la duracin de ciertas
funciones por un factor exponencial sobre otras estrategias de evaluacin
no estrictas, como la llamada de nombre.
Las ventajas de la evaluacin perezosa incluyen:
El rendimiento aumenta debido a evitacin de clculos innecesarios y
evitacin de condiciones de error en la evaluacin de expresiones
compuestas.
La capacidad de construir estructura de datos potencialmente infinita
La capacidad de definir estructura de control como abstracciones en vez de
como obras primitivistas.

3
La evaluacin perezosa puede llevar a la reduccin de la huella de
memoria, ya que los valores se crean cuando necesario. Sin embargo, con
la evaluacin perezosa, es difcil combinarse con rasgos imperativos como
la excepcin que se maneja (manejo de la excepcin) y entrada/salida
(entrada/salida), porque el pedido de operaciones se hace indeterminado.
La evaluacin perezosa puede introducir el agujero espacial. Tambin, la
depuracin es difcil.
ESTRATEGIAS DE PROGRAMACIN PEREZOSA
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)

4
= (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 *]

Вам также может понравиться