На основі допоміжного файлу створити файл з визначеннями наступних функцій:
Обчислює суму ряду F(m,0) + F(m,1) + ... + F(m,n)
, де F(m,i) = m^i
.
Передумова: m ≥ 0
.
Приклад:
sumPower 2 5 = 62
Генерує нескінченний список рядків трикутника Паскаля.
Приклад:
take 5 trianglePas = [[1], [1, 1], [1, 2, 1], [1, 3, 3, 1], [1, 4, 6, 4, 1]]
Виконує циклічний зсув на n
елементів списку xs
вліво.
Передумова: n ≥ 0
.
Приклади:
rotate [6, 7, 8, 9, 10, 11, 12] 3 = [9, 10, 11, 12, 6, 7, 8]
rotate [1,2,5] 0 = [1,2,5]
Будує впорядкований список цілих чисел x
(n < x < m
), десятковий запис яких є паліндромом.
Приклад:
palindrom10 8 25 = [9, 11, 22]
Перетворює рядок у список пар, замінюючи k
послідовних однакових символів t
на пару (k,t)
.
Приклад:
encode "aaaaggtyyyyyy" = [(4,'a'), (2,'g'), (1,'t'), (6,'y')]
Для парного додатного числа n > 2
повертає пару простих чисел (x,y)
, де x ≤ y
і x + y = n
.
Для інших значень n
повертає (0,0)
.
Приклади:
goldbach 28 = (5,23)
goldbach 13 = (0,0)
Знаходить довжину найдовшого спільного суфікса (хвоста) двох рядків xs
і ys
.
Приклад:
maxComSuf "introduction" "production" = 9
Групує однакові символи рядка xs
, що йдуть підряд, в окремі підсписки.
Приклад:
groupChar "Mississipppi" = ["M","i","ss","i","ss","i","ppp","i"]
sumPower :: Integer -> Integer -> Integer
trianglePas :: [[Integer]]
rotate :: [Int] -> Int -> [Int]
palindrom10 :: Int -> Int -> [Int]
encode :: String -> [(Int, Char)]
goldbach :: Int -> (Int, Int)
maxComSuf :: String -> String -> Int
groupChar :: String -> [String]