1. Напишете функцията prime :: Int -> Bool, която проверява дали едно число е просто с помощта на list comprehension
  2. Напишете функции intersection, union, diff :: (Eq a) => [a] -> [a] -> [a], които намират сечение, обединение и разлика на множества. (вградени функции: elem). Напишете два варианта: с filter и с list comprehension
  3. Напишете функция deleteElement :: Int -> [a] -> [a], която изтрива елемент с даден индекс от даден списък. Напишете функцията рекурсивно и с list comprehension (вградени оператори и функции : !!, zip, take, drop)
  4. Напишете функция divIndex :: [Int] -> [Int], която намира всички елементи, които се делят на поредния си номер (от 1). Напишете функцията рекурсивно и с list comprehension.
  5. Реализирайте алгоритъма за сортиране със сливане
    • напишете функция split :: [a] -> ([a],[a]), която разделя списък на две почти еднакви по дължина части (вградени функции: splitAt)
    • напишете функция merge :: (Ord a) => [a] -> [a] -> [a], която слива елементите на два сортирани списъка в нов сортиран списък
    • напишете функция mergeSort :: (Ord a) => [a] -> [a], която сортира списък като го разделя на две части, сортира всяка от тях и слива резултатите
Last modified: Saturday, 12 November 2011, 5:38 PM