2014-01-14 3 views

ответ

6

Или действительно просто '(""). list - это более общий конструктор списка, поскольку он будет оценивать его аргументы, но для создания списка констант вы можете использовать quote (напомним, что 'x является сокращением для (quote x)).

Вы также должны рассмотреть возможность создания вектора, с [""]. Векторы часто являются лучшим местом для хранения данных, чем списки, в Clojure.

+0

За исключением одного вопроса относительно '' ("") '. Если ваш код или другой код ожидает использования деструктивных операций в структуре списка, такой как та или, что содержит, помните, что в отличие от '(cons" "())' и '(list" ")', ''(" ")' может не возвращать новый список каждый раз (зависит от используемого Lisp, а иногда и от реализации Lisp, который вы используете). В общем, рекомендуется избегать таких вещей, как '' ("") '. – Drew

+0

Я предполагаю, что, поскольку это было опубликовано в теге 'lisp', этот совет может быть релевантным, но поскольку он также размещен под' clojure', я полагаю, что на самом деле используется язык OP. В Clojure такого поведения не беспокоит. Во-первых, нет никакой разрушительной операции, которая работает в списках! Написание '(cons" "())' будет ужасным стилем Clojure; '(list" ")' отлично, и, возможно, более читабельна, но ведет себя одинаково. – amalloy

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