Zusammenfassung der Ressource
Evaluación Perezosa
- Tipos de estrategias
- Evaluación perezosa Estrategias de evaluación Estrategias de evaluación Para los
ejemplos se considera la función mult :: (Int,Int) -> Int mult (x,y) = x*y Evaluación
mediante paso de parámetros por valor (o por más internos): mult (1+2,2+3) = mult
(3,5) [por def. de +] = 3*5 [por def. de mult] = 15 [por def. de *] Evaluación mediante
paso de parámetros por nombre (o por más externos): mult (1+2,2+3) = (1+2)*(3+5)
[por def. de mult] = 3*5 [por def. de +] 4 / 27
- Evaluación perezosa Estrategias de evaluación Evaluación con lambda expresiones
Se considera la función mult' :: Int -> Int -> Int mult' x = y -> x*y Evaluación: 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 *] 5 / 27
- Funciones
- Orden Aplicativo: o ansioso, aunque no necesite se debe evaluar
todos los argumentos.
- Orden Normal
- 1.- Resuelve la función aunque no conozca los argumentos
- 2.- No calcula más de lo necesario
- 3.- La expresión no se evalúa hasta que se requiera
- Ventajas
- El incremento en el rendimiento al evitar cálculos 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.
- Desventajas
- Puede llevar a la reducción de la huella de memoria, ya que los valores se crean
cuando es necesario. Con la evaluación perezosa, es difícil convinarse con rasgos
imperativos como la excepcion que se maneja y entrada/salida, por que el
pedido de operaciones se hace indeterminado
- Técnicas de la programación perezosa
- De afuera hacia adentro
- Evaluación que no termina
- De adentro hacia afuera
- CALL BY NAME
- Concepto
- Es una estrategia de evaluación que retrasa el cálculo de una
expresión hasta que su valor sea necesario, y que también evita repetir
la evaluación en caso de ser necesaria en posteriores ocasiones.