MathGroup Archive 2005

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

Search the Archive

Re: match 1, replace 2


>-----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