Gere todas as divisões de uma lista
As novas funções FoldPair e FoldPairList permite mapear simultaneamente uma função de saída e uma função de atualização de estado.
Pegue uma lista de comprimento 5 para ser dividida.
In[1]:=
list = {a, b, c, d, e};
Use FoldPairList junto com TakeDrop para gerar a divisão dos seguintes comprimentos.
In[2]:=
lengths = {2, 2, 1};
FoldPairList[TakeDrop, list, lengths]
Out[2]=
Para construir todas as divisões, enconte todas as decomposições possíveis do número 5.
In[3]:=
lengthsAll = Flatten[Permutations /@ IntegerPartitions[5], 1]
Out[3]=
In[4]:=
FoldPairList[TakeDrop, list, #] & /@ lengthsAll // Column
Out[4]=