2016-07-03 2 views
0

'((1 2 3) (4 5 6))'(1 2 3) '(4 5 6)으로 변환하려면 어떻게해야합니까?컬렉션 모음에서 외부 컬렉션을 제거하는 방법은 무엇입니까?

나는 다음과 모음이있는 경우 구체적으로는,

:

(def coll '((1 2 3) (4 5 6)) 

을 그리고 난 방법에 인수로 모두 '(1 2 3)'(4 5 6) 전달하려면 어떻게 coll 두 개의리스트로 변환 할 수 있습니까?

(map list ?? coll) 

예를 들어

, ?? 어떤 구현 (map list '(1 2 3) '(4 5 6))의 결과입니다

'((1 4) (2 5) (3 6)) 

로 이어질 것입니다. 내가 뭘하려

이다 : 그것은 하나 개의 목록 (1 2 3 4 5 6)에 이르게하기 때문에

(flatten coll)

이 작동하지 않습니다. # 'clojure.core/인용을 끝내-접합 : [email protected] 같이

맺다 접합 언 바운드 FN 전화를 시도

에 연결됩니다. (map #(quote %) coll) 같이

그리고 견적 매핑

(p1__10109# p1__10109#) 같은 리드.

답변

1

작업을 종종 transpose이라고합니다. clojure에서는 다음과 같이 할 수 있습니다.

(apply map list coll) ;((1 4) (2 5) (3 6)) 
+0

고마워요! 왜 이것이 작동하는지 설명해 주시겠습니까?'~ @'는하지 않습니까? –

+0

@ErwinRooijakkers Unquote 접합은 구문 인용 부호 내에서만 작동합니다 (AFAIK). – Thumbnail

관련 문제