Раскрытие последовательности для последовательностей повторяющихся элементов (clojure) - PullRequest
10 голосов
/ 06 декабря 2010

Как в 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, и некоторое время застрял на этом.

Ответы [ 2 ]

15 голосов
/ 06 декабря 2010
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]]
2 голосов
/ 23 февраля 2011

(карта (сначала счетчик) (разделение по идентификатору [1 1 1 3 2 2]))

((3 1) (1 3) (2 2))

Три, затем один три, а затем две пары!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...