Re: Partitioning a list into unequal partitions
- To: mathgroup at smc.vnet.net
- Subject: [mg47686] Re: Partitioning a list into unequal partitions
- From: Mark Fisher <mark at markfisher.net>
- Date: Thu, 22 Apr 2004 02:38:30 -0400 (EDT)
- References: <c5gfdp$an0$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
For what it's worth, here's my way: UnevenPartition::usage = "UnevenPartition[list, lengths] returns the list partitioned into groups with the specified successive lengths." UnevenPartition[list_, lengths_] := First@Fold[Regroup, {{}, list}, lengths] Regroup[{a_, b_}, n_] := {Append[a, Take[b, n]], Drop[b, n]} UnevenPartition[Range[10], Range[4]] --Mark. DIAMOND Mark R. wrote: > Could someone please show me a simple (non-procedural) way of partitioning a > list into 1,2,3 ... n disjoint sublists, where the length of the list is > guaranteed to be correct (i.e. n*(n+1)/2) > > I can't see a way, and yet I'm sure there *must* be a one-liner using Fold. > > Cheers > > Mark R. Diamond > > > >