ho una lista che voglio pezzo in base a una transizione da tipo struct B alla A. Così, per esempio, ho il seguente:lista Chunking in base al tipo struct cambiare
iex(1)> defmodule A, do: defstruct []
{:module, A ...
iex(2)> defmodule B, do: defstruct []
{:module, B ...
iex(3)> values = [ %A{}, %A{}, %B{}, %B{}, %B{}, %A{}, %A{}, %B{} ]
[%A{}, %A{}, %B{}, %B{}, %B{}, %A{}, %A{}, %B{}]
voglio avere che i dati chunked su in una lista 2 elementi contenente:
[ [ %A{}, %A{}, %B{}, %B{}, %B{} ], [ %A{}, %A{}, %B{} ] ]
Se l'ingresso dovesse essere tutto di a o B di tutti inizialmente, l'uscita sarebbe invariata, poiché nessuna B-> Si è verificato un transizione.
Immagino che Enum.chunk_by/2
sia la strada da percorrere, ma ho difficoltà a capire come mantenere il contesto dell'elemento precedente per sapere quando dividere.
Che aspetto ha una soluzione idiomatica per qualcosa di simile?
Devo scegliere questo dato che è l'unico che riesco a mantenere dato il mio livello attuale di conoscenza dell'elisir! Grazie! –