Services & Resources / Wolfram Forums
-----
 /
MathGroup Archive
2005
*January
*February
*March
*April
*May
*June
*July
*August
*September
*October
*November
*December
*Archive Index
*Ask about this page
*Print this page
*Give us feedback
*Sign up for the Wolfram Insider

MathGroup Archive 2005

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: match 1, replace 2

  • To: mathgroup at smc.vnet.net
  • Subject: [mg56256] Re: [mg56199] match 1, replace 2
  • From: "Wolf, Hartmut" <Hartmut.Wolf at t-systems.com>
  • Date: Wed, 20 Apr 2005 05:31:39 -0400 (EDT)
  • Sender: owner-wri-mathgroup at wolfram.com

>-----Original Message-----
>From: Trevor Baca [mailto:trevorbaca at gmail.com] 
To: mathgroup at smc.vnet.net
>Sent: Tuesday, April 19, 2005 10:55 AM
>Subject: [mg56256] [mg56199] match 1, replace 2
>
>hi mathgroup,
>
>what rule takes
>
>ls = {{1, 2, 3}, {4, 5}, {6, 7, 8, 9}}
>
>to
>
>      {{101, -1, 102, -1, 3}, {104, -1, 5}, {106, -1, 107, -1, 108, -1, 9}}
>
>ie, matches all integers but the last in each list and then replaces
>each matched integer n with the 2-element sequence Sequence[100 + n,
>-1]?
>
>trevor.
>
>

(Didn't appear this very same question already some time ago?)


Replace[ls , {x__, y_} :> 
    Flatten@Append[Transpose[{{x} + 100, PadLeft[{}, Length[{x}], -1]}],

        y], {1}]

Replace[ls , {x__, 
      y_} :> {Apply[Sequence, 
        Transpose[{{x} + 100, PadLeft[{}, Length[{x}], -1]}], {0, 1}], 
      y}, {1}]

Replace[ls , {xx__, y_} :> 
    Append[Replace[{xx}, x_ :> Sequence[x + 100, -1], {1}], y], {1}]

Replace[Replace[ls, 
    x_ :> Sequence[x + 100, -1], {2}], {xx__, y_, z_} :> {xx, y - 100},
{1}]

etc.

--
Hartmut Wolf


  • Prev by Date: Re: (x-y) DiracDelta[x-y] does not simplify to 0
  • Next by Date: Re: plot on condition
  • Previous by thread: Re: match 1, replace 2
  • Next by thread: assigning functions