Haskell - Справка функционального программирования

Почему Вы только не проверяете свой HTML?

Двойной идентификатор не позволяется, и обычно Вы получите ошибку анализа.

9
задан sepp2k 11 September 2009 в 20:06
поделиться

6 ответов

Результатом быстрой сортировки пустого списка является пустой список.

Результат быстрой сортировки непустого списка, где мы вызываем первый элемент списка x и оставшиеся элементы xs : Результат быстрой сортировки всех элементов xs , которые меньше x (*), за которым следует x, за которым следует результат быстрой сортировки всех элементы xs, которые больше x.

(*) Для уточнения: [y | y <- xs, y можно прочитать как «список всех y, где y находится в xs и y ».

13
ответ дан 4 December 2019 в 09:14
поделиться

Это декларативный язык, поэтому вы просто читаете то, что видите. sepp2k делает хороший пример выше.

2
ответ дан 4 December 2019 в 09:14
поделиться

На случай, если ваша проблема связана с пониманием списка, вот несколько альтернативных версий, которые более или менее одинаковы:

quicksort []     = []
quicksort (x:xs) =
  quicksort (filter (< x) xs) ++
  [x] ++
  quicksort (filter (>= x) xs)

quicksort []     = []
quicksort (x:xs) =
  quicksort smaller ++ [x] ++ quicksort bigger
  where
    (smaller, bigger) = partition (< x) xs
2
ответ дан 4 December 2019 в 09:14
поделиться

Проверить http://learnyouahaskell.com/recursion#quick-sort он точно объясняет, что делает быстрая сортировка.

2
ответ дан 4 December 2019 в 09:14
поделиться

Не делали этого со времен колледжа ...

Это рекурсивно - первая строка соответствует пустому множеству.

quicksort []     = []

Следующие несколько строк работают с непустым установлен. Синтаксис (x: xs) разбивает его на один элемент (x) и остальные элементы (xs).

quicksort (x:xs) = quicksort [y | y <- xs, y<x ]
  ++ [x]
  ++ quicksort [y | y <- xs, y>=x]

Первая строка, quicksort [y | y <- xs, y

Средняя строка - это просто набор, содержащий x.

Последняя строка, quicksort [y | y <- xs, y> = x], вызывает быструю сортировку для набора всех элементов из xs, которые больше или равны x (т. е. каждого y из xs, который больше или равен x). Если xs - пустой набор, тогда quicksort [] вернет [].

4
ответ дан 4 December 2019 в 09:14
поделиться

Это не дает прямого ответа на ваш вопрос, но hoogle может помочь вам в обучении В общем, вы можете использовать его для поиска в стандартных библиотеках API либо по имени функции, либо по приблизительной сигнатуре типа.

Вот примеры поисковых запросов, которые он поддерживает:

map
(a -> b) -> [a] -> [b]`
Ord a => [a] -> [a]
Data.Map.insert
0
ответ дан 4 December 2019 в 09:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: