1. |
Напишите функцию, которая возвращала бы True, если первые два элемента двух списков типа [a] соответственно равны друг другу, и False в противном случае (например, если длина одного из списков меньше 2). |
2. |
Напишите функцию, зависящую от двух аргументов x и u, удаляющую все вхождения x в список u. |
3. |
Сортировка слиянием. Даны два упорядоченных по возрастанию списка чисел x и y. Написать функцию f3 x y, которая в качестве значения выдает общий упорядоченный список элементов x и y. Например, f3 [1,3,5,7,8] [2,3,5,7] => [1,2,3,3,5,5,7,7,8]. |
4. |
Определите функцию f s, вычисляющую знакочередующуюся сумму a1–a2+a3–a4 +...+(–1)k ak для списка s, имеющего вид [a1, a2,..., ak]. |
5. |
Определите умножение целых чисел через сложение и вычитание. Используйте рекурсию по одному из сомножителей. |
6. |
Напишите с помощью композиции условных выражений (if) функции от трех аргументов and3 x1 x2 x3 и or3 x1 x2 x3, совпадающие по результату с встроенными функциями and [x1,x2,x3] и or [x1,x2,x3], соответственно. |
7. |
Напишите функцию от двух аргументов x и n , которая создает список из n раз повторенных элементов x. |
8. |
Напишите функцию, осуществляющую циклическую перестановку элементов в любом списке, например, [1,2,3,4,5] => [2,3,4,5,1]. |
9. |
Напишите функцию, которая из данного списка строит список списков его элементов, например, [1,2,3,4,5] => [[2],[3],[4],[5],[1]]. |
10. |
Определите функцию, зависящую от двух аргументов–списков u и v, которая вычисляет список всех элементов u, не содержащихся в v. |
11. |
Определите функцию, зависящую от двух аргументов–списков u и v, которая вычисляет список всех элементов, содержащихся либо в u, либо в v, но не одновременно в u и v. |
12. |
Определите функцию, которая меняет местами первый и последний элементы списка. |
13. |
Определите функцию, результатом которой является сумма цифр натурального числа n. |
14. |
Напишите функцию, единственным аргументом которой являлся бы список списков, объединяющую все эти списки в один. |
15. |
Пусть тип дерева определен как data IntegerTree = IntLeaf Integer | IntBranch IntegerTree IntegerTree deriving Show Пример: IntBranch (IntLeaf 2) (IntBranch (IntLeaf 6) (IntLeaf 9)) :: IntegerTree Используя функцию mapTree, напишите функцию, которая вычисляет сумму листьев. В приведенном примере должно получиться 17. |
16. |
Пусть тип дерева определен как data IntegerTree = IntLeaf Integer | IntBranch IntegerTree IntegerTree deriving Show Пример: IntBranch (IntLeaf 2) (IntBranch (IntLeaf 6) (IntLeaf 9)) :: IntegerTree Используя функцию mapTree, напишите функцию, которая вычисляет количество вершин в дереве. В приведенном примере должно получиться 5. |
17. |
Пусть тип дерева определен как data SimpleTree = SLeaf | SBranch SimpleTree SimpleTree deriving Show Пример: SBranch SLeaf (SBranch SLeaf SLeaf) :: SimpleTree Напишите функцию, которая вычисляет количество внутренних вершин в дереве. В приведенном примере должно получиться 2. |
18. |
Пусть тип дерева определен как data Tree = Leaf Integer | Branch Tree Integer Tree deriving Show Пример: Branch (Leaf 5) 1 (Branch 2 (Leaf 4) 2 (Leaf 3)):: Tree Напишите функцию, которая вычисляет сумму вершин. В приведенном примере должно получиться 15. |
19. |
Пусть тип дерева определен как data Tree = Leaf Integer | Branch Tree Integer Tree deriving Show Пример: Branch (Leaf 5) 1 (Branch 2 (Leaf 4) 2 (Leaf 3)):: Tree Напишите функцию, которая вычисляет наибольшее число в вершине. В приведенном примере должно получиться 5. |
20. |
Напишите функцию, которая определяет, является ли данное натуральное число простым. Воспользуйтесь более общей задачей: ispr n m – "Число n не делится ни на одно число большее или равное m и меньшее n". Имеем ispr n m – истинно, во–первых, если n = m, и, во-вторых, если истинно ispr n (m+1) и n не делится на m. Ваша функция должна быть частным случаем функции ispr n m. |
21. |
Напишите функцию f x n v, которая выдает список, получающийся после добавления x на n-е место в список v. |
22. |
Напишите функцию f n v, которая выдает список, получающийся после удаления n-го элемента в списке v (счет элементов идет с 1). |
23. |
Напишите функцию f s, которая выдает список, получающийся после |
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.