Я пытаюсь распечатать свое двоичное дерево, но Clojure дает мне трудное время распечатывать последовательности должным образом.
Итак, у меня есть список узлов '(1 2 3)
, например.
В каждой итерации я хочу распечатать node с рядом пробелов до и после каждого элемента.
(defn spaces [n]
(apply str (repeat n " ")))
Отлично, это похоже на работу.
Итак, предположим, что у меня есть список nodes
'(:a :b :c)
, который я хочу распечатать в одной строке, с указанными пробелами.
(println (map #(str (spaces before) % (spaces (dec before))) nodes))
У меня есть список элементов. Используя карту, я получаю список строковых объектов. Отлично, поэтому я могу их распечатать!
Но это дает мне следующее:
([email protected] [email protected] [email protected])
Итак, я искал, как печатать ленивые последовательности, и я пришел к использованию команды print-str
. Согласно документам, это печатает строку, которая затем возвращается.
(println (print-str (map #(str (spaces before) % (spaces (dec before))) nodes)))
Но это дает мне следующее:
([email protected] [email protected] [email protected])
Без изменений.. Герм. Любая помощь приветствуется.