content: -- Merge sort - рекурсивный метод «разделяй и властвуй»
  --
  -- Алгоритм рекурсивно делит массив: выбирает опорный элемент,
  --  переставляет элементы - меньшие слева, большие справа («partition»),
  --  затем рекурсивно сортирует две части
  --
  -- Красивая реализация на Haskell через хвостовую рекурсию демонстрирует основную парадигму языка
  --  и функционального программирования. Алгоритм очень прост для понимания.
  
  sort []     = []
  sort (x:xs) =
    sort [y | y <- xs, y <  x]  ++
    [x]                         ++
    sort [y | y <- xs, y >= x]
  
  main = print $ sort [1, 3, 23, 6, 32, 1, 3, 5, 1, 2, 3, 432, 234, 32]