У меня есть сценарий, в котором у меня есть карта с полем, которое будет серией вложенных списков для создания древовидной структуры. Я процитировал списки с помощью ', чтобы он работал, без этого я получаю ошибки, когда он пытается его выполнить.
(def test-map
{:tree '("1" "2" "3" '("1" "2"))})
Проблема в том, что это, кажется, добавляет слово «цитата» в фактический список .
(:tree test-map)
;("1" "2" "3" (quote ("1" "2")))
(first (last (:tree test-map)))
;quote
Мой вопрос в том, как мне избавиться от текста "цитаты". Моя цель - иметь возможность работать с этими типами списков по определенному числу и иметь возможность выводить строки последовательно на заданной глубине.
(for [text (second (last (:tree test-map)))]
text)
Это основная идея c, но Мне кажется странным использовать здесь второй, когда я визуально смотрю на него, список, над которым я работаю, является первым элементом.
Есть ли способ делать со списками то, что я хочу? Лучше использовать векторы?