2012-06-10 5 views
5

저는 Clojure가 처음인데 둘 이상의 시퀀스에서 맵 시퀀스를 만드는 방법이 있는지 궁금합니다.두 개 이상의 seq에서 맵의 seq를 생성하십시오.

(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

하하, 우리는 정확히 같은에서 정확히 같은 대답을 게시 시각! +1 이외에 아무 것도 할 수 없어. – huon

+2

하하, 나는 너의 것을 +1 할 것이다. :) –

+2

Lol, 고마워, 동전 던져서 @MichielBorkent가 대답을 얻는다 – 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) 
관련 문제