Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
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.
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.
UNIDAD lII
TEMA
SUBTEMAS
3.1.
EVALUACIN PEREZOSA
La
estrategia
de
evaluacin
perezosa.
3.2. Tcnicas de programacin funcional
perezosa.
EVALUACIN PEREZOSA
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.
mult (1+2,2+3)
= mult (3,5)
[por def. de +]
= 3*5
= 15
[por def. de *]
mult (1+2,2+3)
= (1+2)*(3+5)
= 3*5
Evaluacin:
mult (1+2) (2+3)
= mult 3 (2+3)
[por def. de +]
= (_y ! 3*y) 5
[por def. de +]
= 3*5
[por def. de +]
= 15
[por def. de *]
Bsqueda no determinstica
Un algoritmo no determinista:
Ofrece muchos posibles resultados
Emplean modelos de computacin tales como la Maquina de Turing
Puede simularse utilizado las listas