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?