2011-12-27 13 views
10

वहाँ एक अंतर्निहित समारोह शीर्ष स्तर के कोष्ठकों के बिना एक सूची के आइटम मुद्रित करने के लिए है, याक्लोजर बिना किसी सूची के एक सूची मुद्रित?

(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 

उत्तर

16

का उत्पादन प्राप्त करने के लिए एक बेहतर तरीका होगा कुछ इस तरह?

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

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

में clojure-contrib.string आप समारोह में शामिल होने के लिए है,

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 
संबंधित मुद्दे