Clojure печать списка без круглых скобок?

Есть ли встроенная функция для печати элементов списка без скобок верхнего уровня или будет лучший способ записи

(defn println-list
  "Prints a list without top-level parentheses, with a newline at the end"
  [alist]
  (doseq [item alist]
    (print (str item " ")))
  (print "\n"))

чтобы получить вывод

user=> (println-list '(1 2 3 4))
1 2 3 4 
nil

Ответ 1

Что-то вроде этого?

(apply println '(1 2 3 4 5))
1 2 3 4 5
nil

Из Clojure docs для apply:

Usage: (apply f args)
       (apply f x args)
       (apply f x y args)
       (apply f x y z args)
       (apply f a b c d & args)
Applies fn f to the argument list formed by prepending intervening
arguments to args.

Ответ 2

в clojure -contrib.string у вас есть функция join,

user=> (require '[clojure.contrib.string :as string])
nil
user=> (string/join " " '(1 2 3 4 4))
"1 2 3 4 4"
user=> (println (string/join " " '(1 2 3 4 4)))
1 2 3 4 4
nil