MathGroup Archive 2006

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

Search the Archive

Re: Insulating data from code

  • To: mathgroup at smc.vnet.net
  • Subject: [mg66535] Re: Insulating data from code
  • From: Peter Pein <petsie at dordos.net>
  • Date: Fri, 19 May 2006 03:39:40 -0400 (EDT)
  • References: <e4ekai$9av$1@smc.vnet.net>
  • Sender: owner-wri-mathgroup at wolfram.com

Ray Koopman schrieb:
>>From time to time I've wanted to partition the first level of one
> list, say A, the same way that another list, say B, is partitioned.
> One way to do this is
> 
> copyPartition[A_List, B_List] /; Length@A >= Length@Flatten@B :=
>                               Module[{i = 0}, Map[A[[++i]]&,B,{-1}]]
> 
> But all the methods I've thought of have a pointer that functions
> something like i in the above code. I'd like to eliminate the pointer,
> because in the unlikely event that A contains an unevaluated symbol
> that is the same as the name of the pointer with $ appended -- e.g.,
> i$, if the pointer is i -- then in the returned list that symbol will
> have a numeric value assigned to it. Unique[i] doesn't help. The
> only solution I see is the probabilistic one of giving the pointer a
> strange (random?) name that hopefully would be very unlikely to show
> up as data. But that would be giving up. Does anyone have any ideas?
> 
Hi Ray,

  use Replace[]:

A={a,b,c,d,e};
B={{1},{2,3},{{{4}},5}};

Ap=B/.Thread[Flatten[B]\[Rule]A]
--> {{a},{b,c},{{{d}},e}}

Peter


  • Prev by Date: Re: Fancy pictures in 3D
  • Next by Date: Re: Insulating data from code
  • Previous by thread: Re: Insulating data from code
  • Next by thread: Re: Insulating data from code