Числа Фибоначчи в Haskell
            Пример для версий 
            
                GHC 6.10.4
            
            
                
                        
	        
        
            Этот пример использует одну из основных особенностей языка Haskell — возможность ленивых вычислений и использования бесконечных списков. Бесконечный список чисел Фибоначчи fibs определяется при помощи фунции zipWith, которая применяет первый аргумент (функцию двух переменных, в данном случае +) к парам соответствующих элементов второго и третьего аргументов (списков). tail fibs возвращает хвост списка fibs (т.е. все элементы, кроме первого). Таким образом первый элемент списка, возвращаемого zipWith, является суммой первого и второго элементов списка fibs и становится третьим его элементом.
module Main where
import Text.Printf
fibs :: [Int]
fibs = 0 : 1 : zipWith (+) fibs (tail fibs)
line n = printf "%d, " $ fibs !! n
main = do
    sequence_ $ map line [1..16]
    putStrLn "..."
Комментарии
]]>blog comments powered by Disqus
]]>