2014-09-26 65 views
1

(=( (DEFN SDSU-DNA計數[DNA字符串]與替換:Clojure中

(let [a (group-by identity dna-string)] 

    (zipmap (keys a) (map #(count (second %)) a))) 
) 

「ATGCTTC」)

{\ C 2,\ G 1,\ T 3,\ A 1})

我想要學習Clojure,我應該寫一個函數,它帶有一個參數,一個DNA字符串,並返回一個映射表示四個字符中的每一個的次數出現在DNA字符串中,我想輸出是這樣的:{A 1:T 3:G 1:C 2},而不是{\ C 2,\ G 1,\ T 3,\ A 1}。我應該可以用格式來做,但我仍然無法做到。誰能幫我這個?

+0

'\ A'是字符「A」的clojure符號,如果您想要映射中的鍵的另一種類型的數據,則需要轉換類型。 – noisesmith 2014-09-27 00:25:20

回答

3

它看起來像要將字符轉換爲關鍵字。嘗試:

(frequencies (map (comp keyword str) dna-string))