Ответ 1
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]]
В Clojure, как вы разбиваете последовательность на подпоследовательности повторяющихся элементов? Например.
[1 2 2 3 3 3 4 2 2 1 1 1]
to
[[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]]
(карта (сначала совпадение) (разделение по идентификатору [1 1 1 3 2 2]))
((3 1) (1 3) (2 2))
Три, затем три, а затем два двое!