Clojure печать списка без скобок? - PullRequest
11 голосов
/ 28 декабря 2011

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

(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

Ответы [ 2 ]

17 голосов
/ 28 декабря 2011

Как то так?

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

Из документов Clojure для 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.
3 голосов
/ 29 декабря 2011

в 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...