生成全部列表分割
全新函数 FoldPair 和 FoldPairList 可同时映射输出函数和状态更新函数.
选取长度为 5 的列表进行分割.
In[1]:=

list = {a, b, c, d, e};
用 FoldPairList 和 TakeDrop 生成以下长度的分割.
In[2]:=

lengths = {2, 2, 1};
FoldPairList[TakeDrop, list, lengths]
Out[2]=

为构建所有分割,找出数字 5 的所有可能分解.
In[3]:=

lengthsAll = Flatten[Permutations /@ IntegerPartitions[5], 1]
Out[3]=

In[4]:=

FoldPairList[TakeDrop, list, #] & /@ lengthsAll // Column
Out[4]=
