2013-05-03 5 views
1

문자열 목록을 구문 분석하고 각 목록을 두 개로 분할 한 후 해시 맵을 만들 때 발생합니다.Clojure 목록을 플랫 목록으로 반환하는 함수 매핑

(map #(clojure.string/split % #"\n" 2) data) 

:

이제
("#ID 
data 
More data", 
"#another ID 
Some more data still") 

우리가 중첩 된 구조를 반환하는 다음과 같은 방법을 사용한다고 가정 :

은 첫 번째 줄의 ID와 나머지 데이터를 하나 하나, 우리는 문자열 목록을 말해봐 이제이를 해시 맵에 넣으려면 먼저 flatten 'd이고 그 다음에 apply hash-map'이되어야합니다. flatten 부분을 건너 뛰고 중첩되지 않은 구조를 반환하는 일부 flat-map을 갖는 방법이 있습니까?

+0

당신은 하위 문자열의 변수들로 각각의 문자열을 분할하고 있습니다. 각각을 두 개 이상의 문자열로 나누려면 3 개의 인수를 사용하여'split'을 사용하십시오 :'# (clojure.string/split % # "\ n"2)' –

+0

실수. 원래 코드는 사실 3 개의 인수를 사용했습니다. 팁 고마워. – Manbroski

답변

4

당신은 into를 사용할 수 있습니다

(into {} (map #(clojure.string/split % #"\n") data)) 
관련 문제