В Haskell, как я могу генерировать числа Фибоначчи на основе свойства, что n-е число Фибоначчи равно числу (n-2) -го числа Фибоначчи плюс (n-1) -й номер Фибоначчи?
Я видел это:
fibs :: [Integer]
fibs = 1 : 1 : zipWith (+) fibs (tail fibs)
Я действительно не понимаю этого или как он создает бесконечный список вместо одного, содержащего 3 элемента.
Как я могу написать код хекеля, который работает, вычисляя фактическое определение, а не делая что-то действительно странное с функциями списка?