Tengo una lista que quiero dividir de manera similar al método (partition sz step col)
de Clojure o la función IterableLike.sliding(size: Int, step: Int)
de Scala. Específicamente, dada una lista como:¿Puedes replicar Clojure (partición) o las funciones deslizantes() de Scala con Guava?
(1, 2, 3)
Quiero ser capaz de iterar sobre las sub-listas como:
(1, 2), (2, 3)
En Clojure esto se haría con:
(partition 2 1 (1, 2, 3))
y con Scala sería:
val it = Vector(1, 2, 3).sliding(2)
Sin embargo, no tengo tanto lujo y espero evitar tener que hacer mi propio trabajo. Guava tiene un método de partición que se acerca, pero no ofrece la superposición. Google ha sido infructuoso también. ¿Existe tal método o tendré que hacer el mío?
si nadie sabe de algo mejor podría fusionar dos particiones de guayaba, donde la segunda es de una secuencia con un elemento eliminado ... –
¿No necesitaría particiones * size *? Buena idea sin embargo. –
Puede usar el mapa, algo así como: '(map (fn [xy] '(x, y)) lst (rest lst))' – Ankur