Una función rápida ( O(n) ) de los números de Fibonacci basada en evaluación perezosa y listas infinitas
Detalles por explicar...
Prelude> let fibs = 1:1:[a | a <- zipWith (+) fibs (tail (fibs))] in fibs!!1
1
Prelude> let fibs = 1:1:[a | a <- zipWith (+) fibs (tail (fibs))] in fibs!!2
2
Prelude> let fibs = 1:1:[a | a <- zipWith (+) fibs (tail (fibs))] in fibs!!3
3
Prelude> let fibs = 1:1:[a | a <- zipWith (+) fibs (tail (fibs))] in fibs!!4
5
Prelude> let fibs = 1:1:[a | a <- zipWith (+) fibs (tail (fibs))] in fibs!!5
8
Prelude> let fibs = 1:1:[a | a <- zipWith (+) fibs (tail (fibs))] in fibs!!6
13
Prelude> let fibs = 1:1:[a | a <- zipWith (+) fibs (tail (fibs))] in fibs!!7
21
Prelude> let fibs = 1:1:[a | a <- zipWith (+) fibs (tail (fibs))] in fibs!!8
34
Comentarios
Publicar un comentario