MathGroup Archive 2009

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

Search the Archive

Re: List of position-specifying functions

  • To: mathgroup at smc.vnet.net
  • Subject: [mg102368] Re: [mg102351] List of position-specifying functions
  • From: Bob Hanlon <hanlonr at cox.net>
  • Date: Fri, 7 Aug 2009 05:28:59 -0400 (EDT)
  • Reply-to: hanlonr at cox.net

plist = {2, 5, 4, 6, 3};

f = plist /. p_Integer -> (#[[p]] &)

{#1[[2]] & , #1[[5]] & , 
   #1[[4]] & , #1[[6]] & , 
   #1[[3]] & }

Presumably you would use this list like this

data = Array[d, {Max[plist]}];

res = #[data] & /@ f

{d[2], d[5], d[4], d[6], d[3]}

This result can be obtained more directly 

res == (data[[#]] & /@ plist)

True

res == data[[plist]]

True


Bob Hanlon

---- Ray Koopman <koopman at sfu.ca> wrote: 

=============
I have a list of distinct positive integers, such as

In[1]:= plist = {2, 5, 4, 6, 3};

I want to convert it to a list of position-specifying functions,
such as might be used as the second argument in SplitBy or GatherBy.
One way that works is:

In[2]:= plist /. p_Integer->(#[[p]]&)

Out[2]= { #1[[2]]&, #1[[5]]&, #1[[4]]&, #1[[6]]&, #1[[3]]& }

I've been trying to get the same thing using Map,
but I haven't been able to do it. Any suggestions?



  • Prev by Date: Re: List of position-specifying functions
  • Next by Date: Re: List of position-specifying functions
  • Previous by thread: Re: List of position-specifying functions
  • Next by thread: Re: List of position-specifying functions