 
 
 
 
 
 
Re: pattern matching all list elements but last
- To: mathgroup at smc.vnet.net
- Subject: [mg54557] Re: [mg54539] pattern matching all list elements but last
- From: "Harvey P. Dale" <hpd1 at nyu.edu>
- Date: Wed, 23 Feb 2005 03:11:29 -0500 (EST)
- Sender: owner-wri-mathgroup at wolfram.com
Trevor:
Flatten[Join[{100+Most[#],Last[#]}]]&/@{{1},{2,3},{4,5,6},{7,8,9,10}}
            Best,
            Harvey
Harvey P. Dale
University Professor of Philanthropy and the Law
Director, National Center on Philanthropy and the Law
New York University School of Law
Room 206A
110 West 3rd Street
New York, N.Y. 10012-1074
tel: 212-998-6161
fax: 212-995-3149
fax: 914-234-0940
-----Original Message-----
From: Trevor Baca [mailto:trevorbaca at gmail.com]
To: mathgroup at smc.vnet.net
Subject: [mg54557] [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.

