MathGroup Archive 2007

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

Search the Archive

Re: Replacing list elements while retaining structure

  • To: mathgroup at smc.vnet.net
  • Subject: [mg74002] Re: Replacing list elements while retaining structure
  • From: Peter Pein <petsie at dordos.net>
  • Date: Mon, 5 Mar 2007 04:52:50 -0500 (EST)
  • References: <esdj70$olc$1@smc.vnet.net>

D. Grady schrieb:
...
> This is what I have so far:
> 
> structurize[X_List, Y_List] := ReplacePart[X, Flatten[Y], Position[X,
> a_ /; \
> (Head[a] =!= List), Heads -> False],
>       Table[{i}, {i, 1, Length[
>         Flatten[Y]]}]] /; Length[Flatten[X]] == Length[Flatten[Y]]
> 
> This works fine so long as the elements of X are atomic expressions;
> however, if there is an element of X which is a more complicated
> expression, like x^2, then this function does not work as desired
> because the pattern in Position[] matches x^2 as well as x and 2.  Is
> there a way to avoid matching parts of a subexpression?  Is there a
> better way to approach the problem from the get-go?
> 
> Thanks in advance!
> 
> 

If I understand you correctly, you've got something like this:

test = {x, x^2, {{x + y}, x/Tan[Exp[x] - 1]}, x};

and want that:

preprocess[Except[_List]] := x;
SetAttributes[preprocess, Listable];
preprocess[test]

--> {x, x, {{x}, x}, x}

hth,
Peter


  • Prev by Date: Re: Copy-paste vector graphics
  • Next by Date: Re: Copy-paste vector graphics
  • Previous by thread: Re: Replacing list elements while retaining structure
  • Next by thread: Re: Replacing list elements while retaining structure