1. Напишете функция (nth l n), която връща n-тия елемент на l
  2. Напишете функция (length l), която връща дължината на l
  3. Напишете функция (different? l), която проверява дали списъкът l се състои от различни елементи
  4. Напишете функция (removeDupl l), която връща списък, който съдържа всички елементи на l, но само по един път, т.е. премахва евентуалните повторения
  5. Напишете функции intersect, union, difference, които намират сечение и обединение и разлика на две множества, представени като списъци, в които няма повтарящи се елементи
  6. Напишете функция (ordered? l), която проверява дали елементите на даден списък са подредени в нарастващ ред
  7. Напишете функция (insert x l), която вмъква числото x в списъка от числа l, който е подреден в нарастващ ред.
  8. Напишете функция (insertSort l), която сортира списъка по метода на вмъкването (сортира опашката и вмъква главата на подходящо място)
  9. Напишете функция (reverse l), която обръща списъка l. Напишете рекурсивен и итеративен вариант на това решение. Кой е по-бърз?
  10. Напишете функция (split l), която връща точкова двойка от вида (l1 . l2), където l1 и l2 съдържат елементите на l разделени почти по равно по метода "едно на мен, едно на теб".
  11. Напишете функция (merge l1 l2), която слива два сортирани списъка l1 и l2 така че резултатът също е сортиран списък.
  12. Напишете функция (mergeSort l), която сортира списък по метода на сливането, т.е. първо разделя списъка на две части със split, сортира ги рекурсивно и след това ги слива с merge.
Последно модифициране: събота, 12 ноември 2011, 17:38