2012-06-10 22 views
5

से मानचित्रों का सीईसी बनाएं मैं क्लोजर के लिए नया हूं और मैं सोच रहा था कि दो या दो से अधिक अनुक्रमों से नक्शे का अनुक्रम बनाने का कोई तरीका है या नहीं।दो या दो से अधिक seqs

मान लें कि आप है:

(def numbers '(1 2 3)) 
(def letters '("a" "b" "c")) 
(def shapes '("circle" "square" "triangle")) 

आप उन विलय कर दिया अगर मैं नक्शे के एक दृश्य क्या रूबी में हैश की एक सरणी होगा प्राप्त करने के लिए, या Clojure में करना चाहते हैं?

({:number 1, :letter "a", :shape "circle"} {:number 2, :letter "b", :shape "square"} {:number 3, :letter "c", :shape "triangle"}) 

धन्यवाद!

उत्तर

4
(map (fn [n l s] {:number n, :letter l, :shape s}) numbers letters shapes) ;;=> 
({:number 1, :letter "a", :shape "circle"} {:number 2, :letter "b", :shape "square"} {:number 3, :letter "c", :shape "triangle"}) 
+1

Haha, हम बिल्कुल वैसा ही जवाब ठीक उसी पर तैनात पहर! मैं कुछ भी नहीं कर सकता लेकिन +1 – huon

+2

हाहा, मैं भी तुम्हारा +1 करूंगा, क्या सह-घटनाएं! :) –

+2

लॉल, धन्यवाद दोस्तों, मैंने एक सिक्का फिसल दिया और @ मिचिलबॉर्गेन्ट को जवाब मिला – kreek

4

मुझे यकीन है कि वहाँ यह करने के लिए एक और अधिक मुहावरेदार तरीका है हूँ, लेकिन:

(map (fn [n l s] {:number n, :letter l, :shape s}) numbers letters shapes) 

या यहां तक ​​कि

(map #(do {:number %1, :letter %2, :shape %3}) numbers letters shapes) 
संबंधित मुद्दे