2013-04-14 3 views
2

Я только что начал с Clojure, его было всего неделю. Я попытался решить некоторые стандартные проблемы, связанные с Clojure.Когда нам нужно указывать списки в Clojure?

Я прочитал о цитируемых списках, которые не оцениваются и считаются стандартным набором данных, таких как векторы.

Каковы сценарии, в которых цитированная форма списка будет полезна вместо векторов?

+0

Помимо списка, созданного 'cons'-ing, я не могу думать о многих. В основном вам не нужно об этом беспокоиться. – dsm

ответ

2

списки Clojure может быть использован в качестве неизменных, упорных однократно связанных списков. Для типичных операций с списками, особенно с манипуляторами головы и хвоста, списки будут работать намного лучше, чем векторы. Кроме того, цитированная форма списка не получает немедленную оценку, поэтому вы можете хранить вызовы функций в них и управлять при выполнении вызовов; сделать то же самое в векторе, и все будет работать сразу же последовательно.

Векторы лучше для случайного доступа, и они работают лучше, если вам нужно добавить данные в конец коллекции. Они также являются «ассоциативными», что означает, что вы можете рассматривать их как карты, где ключ является индексом значения, и вы можете использовать их для временных операций (что является целым рядом вопросов).

Смежные вопросы