2011-12-27 24 views
10

Czy istnieje funkcja wbudowana w celu wydrukowania pozycji listy bez nawiasów najwyższego szczebla, czy będzie tam lepszy sposób napisaćClojure drukowanie listy bez nawiasów?

(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")) 

uzyskać wyjście

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

Odpowiedz

16

Coś takiego?

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

Z Clojure docs for 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

w Clojure-contrib.string masz funkcja przyłączyć,

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 
Powiązane problemy