Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!zaphod.mps.ohio-state.edu!mips!spool.mu.edu!uwm.edu!ux1.cso.uiuc.edu!csrd.uiuc.edu!sp27.csrd.uiuc.edu!jaxon From: jaxon@sp27.csrd.uiuc.edu (Greg P. Jaxon) Newsgroups: comp.lang.apl Subject: Re: WANTED: a way to sort array so each column i Message-ID: <1991Apr26.190032.11576@csrd.uiuc.edu> Date: 26 Apr 91 19:00:32 GMT References: <1991Apr17.151913.4891@csrd.uiuc.edu> <1991Apr19.145007.2201@csrd.uiuc.edu> <567@kepler1.kepler.com> Sender: news@csrd.uiuc.edu (news) Organization: UIUC Center for Supercomputing Research and Development Lines: 19 rjfrey@kepler.com (Robert J Frey) writes: >Without a rank operator or a very general axis "operator" I don't see how most >APL's could avoid breaking the array into separate columns It's horridly inefficient, but you could: $ Z is COLUMN_SORT A;#IO;#CT;T [1] #IO is #CT is 0 [2] T is reverse rho A [3] Z is grdn A is ,A [4] Z is A[transpose T rho Z[grup T[0]|Z]] $ in any ISO standard APL. >SORTED_ARRAY assign mix[0.1] sort foreach split[1] ARRAY This keeps coming up ^^^ does some APL actually define mix using fractional axis numbers? mix[#IO] sort" split[#IO]. This is a good pattern to know just generally, because it covers most uses of the J (APL Dictionary) rank operator.