" " . " " , , . , , .
fibs = 0 : 1 : zipWith (+) fibs (drop 1 fibs)
? . , . .
? : " [] x : xs?" , .
fibs, ,
fibs = x0 : xs0
x0 = 0
xs0 = 1 : zipWith (+) fibs (drop 1 fibs)
( fibs, x0)
xs0 = 1 : zipWith (+) (0 : xs0) (drop 1 (0 : xs0))
, ,
xs0 = x1 : xs1
x1 = 1
xs1 = zipWith (+) (0 : xs0) (drop 1 (0 : xs0))
xs1 = zipWith (+) (0 : 1 : xs1) (drop 1 (0 : 1 : xs1))
, - . , , ? xs1, zipWith, drop.
xs1 = zipWith (+) (0 : 1 : xs1) (drop 1 (0 : 1 : xs1))
= zipWith (+) (0 : 1 : xs1) (1 : xs1)
= (0 + 1) : zipWith (+) (1 : xs1) xs1
xs1 = x2 : xs2
x2 = 0 + 1 = 1
xs2 = zipWith (+) (1 : xs1) xs1
= zipWith (+) (1 : 1 : xs2) (1 : xs2)
? , zip- . , "". xs2,
xs2 = zipWith (+) (1 : 1 : xs2) (1 : xs2)
= (1 + 1) : zipWith (1 : xs2) xs2
xs2 = x3 : xs3
x3 = 1 + 1 = 2
xs3 = zipWith (1 : xs2) xs2
= zipWith (1 : 2 : xs3) (2 : xs3)
!
, , zipWith, , , .
, , . , , , , . ( - , .)
, " " , , . , .