В этом уроке изучать будем список, или по-другому массив. [тип переменной] - эта конструкция с квадратными скобками обозначает, что внутри может быть помещено несколько значений сразу. И прибавление :[] означает множественность значений входящих в список.
Определить функцию, принимающую на вход целое n и возвращающую список, содержащий n элементов, упорядоченных по возрастанию.
Определить функцию, принимающую на вход целое 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]
Набираем в блокноте:
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
[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
[1,4,9,16,25,36,49,64] :: [Integer]
Комментариев нет:
Отправить комментарий