10
在Clojure中,如何將序列劃分爲重複元素的子序列?例如。 :解開重複元素序列的序列(clojure)
[1 2 2 3 3 3 4 2 2 1 1 1]
到
[[1] [2 2] [3 3 3] [4] [2 2] [1 1 1]]
我已經和一些例子試圖瞭解Clojure中更好地玩耍,並被困在這一個了一段時間。
在Clojure中,如何將序列劃分爲重複元素的子序列?例如。 :解開重複元素序列的序列(clojure)
[1 2 2 3 3 3 4 2 2 1 1 1]
到
[[1] [2 2] [3 3 3] [4] [2 2] [1 1 1]]
我已經和一些例子試圖瞭解Clojure中更好地玩耍,並被困在這一個了一段時間。
user> (partition-by identity [1 2 2 3 3 3 4 2 2 1 1 1])
((1) (2 2) (3 3 3) (4) (2 2) (1 1 1))
user> (vec (map vec (partition-by identity [1 2 2 3 3 3 4 2 2 1 1 1])))
[[1] [2 2] [3 3 3] [4] [2 2] [1 1 1]]
(地圖(juxt計數第一) (分區由身份[1 1 1 3 2 2]))
((3- 1)(1 3)(2 2))
三個,然後一個三,然後兩個兩個!
太棒了!甚至不知道存在這樣的功能(身份)。謝謝! – aeter 2010-12-06 20:06:05