lunes, 4 de abril de 2016

Evaluación perezosa


 • Consiste en no evaluar un argumento hasta que no se necesita

 • Uno de los beneficios es 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 evaluación perezosa se pueden construir objetos potencialmente infinitos pieza a pieza según las necesidades de la evaluación


Procesamiento con el infinito


 Evaluación mediante paso de parámetros por valor:

fst (0,inf)
= fst (0,1 + inf)                                [por def. inf]
= fst (0,1 + (1 + inf))                       [por def. inf]
= fst (0,1 + (1 + (1 + inf)))              [por def. inf]
= . . .


 Terminación de evaluaciones con estructuras infinitas


Ejemplo de no terminación: *Main> [1..]
 [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20... 

Ejemplo de terminación: *Main> take 3 [1..]
 [1,2,3] 

Ejemplo de no terminación: *Main> filter (<=3) [1..] 
[1,2,3 C-c C-c Interrupted. 

Ejemplo de no terminación: *Main> takeWhile (<=3) [1..] 
[1,2,3] 


Autor: Karla Daniela Torres Castruita
Fecha: 05/04/2016
Bibliografía: http://www.cs.us.es/~jalonso/cursos/i1m-14/temas/tema-10.pdf
                  http://es.slideshare.net/psfracchia/programacin-funcional

No hay comentarios.:

Publicar un comentario