ah shoot, I realized I didn't put [proposal] in the header so I deleted this and then added more stuff including a use case. To summarize, let's say you want to make Conway's game of life. There are many ways of doing it, but I did it by chunking each row into windows of size 3 and then doing various operations. The problem is, that the first and last windows should have a size of 2, as the first cell in a row only has a neighbor ahead of it (we can also make stuff wrap around, using this proposed chunk_every function, but ill explain that part later). So I wrote this setup_arr function that makes an incomplete window, pads it, and pads the incomplete window at the end of the chunks. Example: [0,1,0,1,0,0] would turn into: [0,1], [0,1,0] [1,0,1], [0,1,0], [1,0,0], [0,0] But with the leftover options, we could also add 0s (as the neighbor that doesn't exist isn't alive) [0,0,1], [0,1,0] [1,0,1], [0,1,0], [1,0,0], [0,0,0]
https://github.com/konstantin-aa/gamesoflife/blob/main/main.exs?fbclid=IwAR0BxNfsrAxY_ugCu-PyFP7TmvncagjwdlU5SegdovGrUV6zuDB9soUUEYg tweaked proposal: https://groups.google.com/g/elixir-lang-core/c/MAHgFIsThPo On Sunday, 14 August 2022 at 03:23:50 UTC-4 m...@achempion.com wrote: > Out of curiosity, what is the usecase where such function will be useful? > > On 14 Aug 2022, at 05:51, Konstantin Astafurov <konstantin...@gmail.com> > wrote: > > I've noticed that in some cases, the chunking functionality provided by > Enum.chunk_every isn't enough. For example, It'd be awesome if chunk_every > could offset the window. > > so [1,2,3,4,5] with count 3 step 2 and offset of -2 would return > [1], [1,2], [1,2,3], [2,3,4], [3,4,5], [4,5], [5] > > Elements in the leftover option would be to the left of the initial chunks > less than count. It'd also be neat if you could have different leftover > options for the left-hand and right-hand leftovers. > > -- > You received this message because you are subscribed to the Google Groups > "elixir-lang-core" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to elixir-lang-co...@googlegroups.com. > To view this discussion on the web visit > https://groups.google.com/d/msgid/elixir-lang-core/ecb42760-f5f2-447e-89be-dc1081654b5cn%40googlegroups.com > > <https://groups.google.com/d/msgid/elixir-lang-core/ecb42760-f5f2-447e-89be-dc1081654b5cn%40googlegroups.com?utm_medium=email&utm_source=footer> > . > > -- You received this message because you are subscribed to the Google Groups "elixir-lang-core" group. To unsubscribe from this group and stop receiving emails from it, send an email to elixir-lang-core+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/elixir-lang-core/d9a5a3e2-d750-4dd0-81de-40e63ade2f73n%40googlegroups.com.