2011-08-25 9 views
8

में संग्रह (मानचित्र की सूची) से भी/विषम अनुक्रमित तत्व प्राप्त करें मेरे पास मानचित्र की एक सूची है, मुझे क्लोजर में उस सूची से भी/विषम अनुक्रमित तत्व प्राप्त करने की आवश्यकता है। मैं लूप के साथ सूची को फिर से विचार नहीं करना चाहता हूं। क्या कोई छोटा या एकल_वर्ड फ़ंक्शन है?क्लोजर

उत्तर

24
user=> (take-nth 2 [0 1 2 3 4 5 6 7 8 9]) 
(0 2 4 6 8) 
user=> (take-nth 2 (rest [0 1 2 3 4 5 6 7 8 9])) 
(1 3 5 7 9) 
+0

धन्यवाद, मैं पहले से ही यह पाया, बस जवाब पोस्ट करने के लिए सेकंड से चूक गया! –

+0

यह वही है जो मुझे चाहिए! – PubNub

-1

मैं इस के लिए किसी भी में निर्मित समारोह का पता नहीं है, लेकिन यह एक अपने आप को लिखने के लिए कि वर्बोज़ नहीं है, यहाँ मेरी प्रयास है:

(defn evens-and-odds [coll] 
    (reduce (fn [result [k v]] 
      (update-in result [(if (even? k) :even :odd)] conj v)) 
      {:even [] :odd []} 
      (map-indexed vector coll))) 

(evens-and­-odds [ "foo"­ "bar"­ "baz"­ "foob­ar" "quux­" ]) 
; -> {:even ["foo" "baz" "quux"], :odd ["bar" "foobar"]}