Genere todas las particiones de una lista
Las nuevas funciones FoldPair y FoldPairList permiten mapear simultáneamente una función de salida y una función de actualización de estado.
Tome una lista de longitud 5 para ser dividida.
In[1]:=
![Click for copyable input](assets.es/generate-all-partitions-of-a-list/In_61.png)
list = {a, b, c, d, e};
Utilice FoldPairList junto con TakeDrop para generar una partición de las siguientes longitudes.
In[2]:=
![Click for copyable input](assets.es/generate-all-partitions-of-a-list/In_62.png)
lengths = {2, 2, 1};
FoldPairList[TakeDrop, list, lengths]
Out[2]=
![](assets.es/generate-all-partitions-of-a-list/O_65.png)
Para construir todas las particiones, encuentre todas las posibles descomposiciones del número 5.
In[3]:=
![Click for copyable input](assets.es/generate-all-partitions-of-a-list/In_63.png)
lengthsAll = Flatten[Permutations /@ IntegerPartitions[5], 1]
Out[3]=
![](assets.es/generate-all-partitions-of-a-list/O_66.png)
In[4]:=
![Click for copyable input](assets.es/generate-all-partitions-of-a-list/In_64.png)
FoldPairList[TakeDrop, list, #] & /@ lengthsAll // Column
Out[4]=
![](assets.es/generate-all-partitions-of-a-list/O_67.png)