• 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
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