Re: Applying Apply
- To: mathgroup at smc.vnet.net
- Subject: [mg107788] Re: Applying Apply
- From: Simon <simonjtyler at gmail.com>
- Date: Fri, 26 Feb 2010 04:05:28 -0500 (EST)
- References: <hm6u23$gke$1@smc.vnet.net>
This isn't elegant, but it works: plabel = {Text["Orange", {10, 44}], Text["Blue", {10, 50}], Text["Green", {2, 99}], Text["Red", {2, 20}]}; textColours = {Orange, Blue, Green, Red}; Head[#1][Style[First@#1, #2], Sequence @@ Rest@#1] & @@ # & /@ ({plabel, textColours}\[Transpose]) On Feb 26, 6:36 am, Chris Degnen <deg... at cwgsy.net> wrote: > Can anyone suggest an elegant way to apply a function - in this case a > Style - to elements in a list. > In the example below I'm applying colours to their names. (I don't > know how Text is being used so I aimed to preserve the original > structure). As you can see it took me two lines to splice in the > colour styles. I thought I should have been able to do it in one, but > couldn't figure out how. > > plabel = {Text["Orange", {10, 44}], Text["Blue", {10, 50}], > Text["Green", {2, 99}], Text["Red", {2, 20}]}; > textColours = {Orange, Blue, Green, Red}; > plabel2 = > Append[Transpose[Apply[{#1, #2} &, plabel, 1]], textColours]; > plabel = Apply[Text[Style[#1, #3], #2] &, Transpose[plabel2], 1]