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

Entradas populares de este blog

Origami, solo por compartir el interés

Sockets en Python

Tres nodos: 1 punto de acceso y dos clientes que se conectan entre sí vía el punto de acceso