-- Определение функции на Haskell , принимающей на вход целое число n и возвра-
-- щающую список, содержащий n элементов, упорядоченных по возрастанию.
-- The list of natural numbers
-- Список натуральных чисел
-- http://ilynva.livejournal.com/8282.html
listNN :: Integer -> [Integer]
listNN 0 = []
listNN x = listNN (x-1)++[x]
listNNi :: Integer -> [Integer]
listNNi x = if x == 0 then [] else listNNi (x-1)++[x]
{-
Main> listNNi 67
[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67] :: [Integer]
(3447 reductions, 8809 cells)
Main> listNN 67
[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67] :: [Integer]
(3583 reductions, 9013 cells)
Main>
-}