Re: Sorting point-arrays by rows and columns, cont.
- To: mathgroup at smc.vnet.net
- Subject: [mg124091] Re: Sorting point-arrays by rows and columns, cont.
- From: Chris Young <cy56 at comcast.net>
- Date: Sun, 8 Jan 2012 04:28:19 -0500 (EST)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
- References: <je6e3j$q6k$1@smc.vnet.net> <je96m6$j6c$1@smc.vnet.net>
It's a little hard to get used to the conventions about which slot gets which argument in a lot of these functions. For example, in the Help for FoldList, it just has an example, which doesn't even use the usual sort order. Fold to the right: In[1]:= FoldList[g[#2, #1] &, x, {a, b, c, d}] Out[1]= {x, g[a, x], g[b, g[a, x]], g[c, g[b, g[a, x]]], g[d, g[c, g[b, g[a, x]]]]} I wish the documentation would at least say what the slots are for. One self-documenting way to write the code is with the tee-arrow notation for funcitons (via Esc-fn-Esc). Then we can just put in "P" and "list" for the arguments and everything is a lot clearer. In[78]:= P = hexPts; list = {1, 2}; FoldList[ {P, list} \[Function] P[[Ordering[P[[All, list]], All, LessEqual]]], P, list ] Out[80]= { {{0, 0}, {1, 0}, {1/2, Sqrt[3]/2}, {-(1/2), Sqrt[3]/2}, {-1, 0}, {-(1/2), -(Sqrt[3]/2)}, {1/2, -(Sqrt[3]/2)}}, {{-1, 0}, {-(1/2), Sqrt[3]/2}, {-(1/2), -(Sqrt[3]/2)}, {0, 0}, {1/2, Sqrt[3]/2}, {1/2, -(Sqrt[3]/2)}, {1, 0}}, {{-(1/2), -(Sqrt[3]/2)}, {1/2, -(Sqrt[3]/2)}, {-1, 0}, {0, 0}, {1, 0}, {-(1/2), Sqrt[3]/2}, {1/2, Sqrt[3]/2}} }