Re: pattern matching all list elements but last
- To: mathgroup at smc.vnet.net
- Subject: [mg54559] Re: [mg54539] pattern matching all list elements but last
- From: Bob Hanlon <hanlonr at cox.net>
- Date: Wed, 23 Feb 2005 03:11:31 -0500 (EST)
- Reply-to: hanlonr at cox.net
- Sender: owner-wri-mathgroup at wolfram.com
ls={{1},{2,3},{4,5,6},{7,8,9,10}}; ls /. {a___,b_Integer} :> {Sequence@@({a}+100),b} {{1},{102,3},{104,105,6},{107,108,109,10}} Bob Hanlon > > From: "Trevor Baca" <trevorbaca at gmail.com> To: mathgroup at smc.vnet.net > Date: 2005/02/22 Tue AM 04:24:35 EST > To: mathgroup at smc.vnet.net > Subject: [mg54559] [mg54539] pattern matching all list elements but last > > hi mathgroup folks, > > let's say ls looks like this: > > ls = {{1}, {2,3}, {4,5,6}, {7,8,9,10}} > > is there an elegant way to match all integers *except the last > (rightmost)* in each list and, say, add 100 to each? > > ls /. <magic replacement rule goes here> > > or > > ls //. <magic replacement rule goes here> > > to give {{1}, {102,3}, {104,105,6}, {107,108,109,10}}? > > this works: > > Release[ ls //. {a___, b_Integer, c___, z_Integer} :> {a, Hold[b + > 100], c, z} ] > > but is there a more elegant pattern, possibly one that avoids the > Hold-Release trick? > > > trevor. > >