Корекурсия
Материал из Википедии — свободной энциклопедии
Кореку́рсия — в информатике тип операции, дуальный к рекурсии. Обычно корекурсия используется (совместно с механизмом ленивых вычислений) для генерации бесконечных структур данных.
Пример использования механизма корекурсии на языке Haskell (вычисление бесконечного списка чисел Фибоначчи):
fibs = 0 : 1 : zipWith (+) fibs (tail fibs)
Другой пример — вычисление бесконечного списка простых чисел:
primes = eratosthenes [2..] where eratosthenes (x:xs) = x:eratosthenes (filter ((/= 0).(`mod` x)) xs)
Данная функция реализует алгоритм «решето Эратосфена», причём делает это самым непосредственным образом.