jueves, 24 de marzo de 2016

Estructuras infinitas

Programación con estructuras infinitas
unos es una lista infinita de unos.
unos :: [Int]
unos = 1:unos
Evaluación:
unos
= 1 : unos [por def. unos]
= 1 : (1 : unos) [por def. unos]
= 1 : (1 : (1 : unos)) [por def. unos]
= ...

Evaluación en Haskell:
*Mani>
[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,…

Evaluación con estructuras infinitas


Evaluación impaciente:

head unos = head (1 : unos) [por def. unos]
= head (1 : (1 : unos)) [por def. unos]
= head (1 : (1 : (1 : unos))) [por def. unos]
= ...

Evaluación perezosa:

head unos
= head (1 : unos) [por def. unos]
= 1 [por def. head]
Evaluación en Haskell:
*Mani>
1

Autor: Jose Silva
Fecha: 24/02/2016 
Bibliografia: https://www.cs.us.es/~jalonso/publicaciones/2013-Temas_de_PF_con_Haskell.pdf

No hay comentarios.:

Publicar un comentario