proba

понедельник, 29 августа 2011 г.

Программирование на языке Haskell, урок № 4

В этом уроке изучать будем список, или по-другому массив. [тип переменной] - эта конструкция с квадратными скобками обозначает, что внутри может быть помещено несколько значений сразу. И прибавление :[] означает множественность значений входящих в список.
Определить функцию, принимающую на вход целое n и возвращающую список, содержащий n элементов, упорядоченных по возрастанию.
1) Список натуральных чисел.
2) Список нечётных натуральных чисел.
3) Список чётных натуральных чисел.
4) Список квадратов натуральных чисел.

Решение №1:
 Набираем в блокноте: 
 list2 :: Integer -> [Integer]
 list2 0 = [ ]
 list2 x = list2 (x-1)++(x:[])

 Запуск:
 Main> :load "c:\\haskell\\laba21.hs"
 Main> list2 5
 [1,2,3,4,5] :: [Integer]

Решение № 2:
 Набираем в блокноте:
 list1 :: Integer -> [Integer]
 list1 0 = [ ]
 list1 x = list1 (x-1)++(2*x-1:[])

 Запуск:
 Prelude> :load "c:\\haskell\\laba21.hs"
 Main> list1 5
 [1,3,5,7,9] :: [Integer]

Решение № 3:
 list3 :: Integer -> [Integer]
 list3 0 = [ ]
 list3 x = list3 (x-1)++(2*x:[])

 Запуск:
 Main> list3 8 
 Reading file "c:\haskell\Laba21.hs":
 [2,4,6,8,10,12,14,16] :: [Integer] 

Решение № 4:
 list4 :: Integer -> [Integer]
 list4 0 = [ ]
 list4 x = list4 (x-1)++(x*x:[])

 Запуск:
 Main> list4 8
 Reading file "c:\haskell\Laba21.hs":
 [1,4,9,16,25,36,49,64] :: [Integer] 

Комментариев нет:

Отправить комментарий