MathGroup Archive 1992

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

Search the Archive

Re: Sorting of pairs

  • To: mathgroup at yoda.physics.unc.edu
  • Subject: Re: Sorting of pairs
  • From: John Lee <lee at math.washington.edu>
  • Date: Fri, 7 Aug 92 08:30:31 -0700

Riccardo Rigon <RIGON at iveuncc.bitnet> writes:

> Dear mathgroupers, I have a list of pairs:
> list={{2,3},{4,5},{1,3},{3,8},{4,4}}
> and I want to order them with this rule:
> rule[a_List,b_List]:=a/;(a[[1]]< b[[1]] || ( a[[1]]==b[[1]] && a[[2]]<b[[2]]))
> rule[a_List,b_List]:=b
> The way to do this should be:

> Sort[list,rule]
> Sort[list,rule[#1,#2]&]
> but no one of the two methods works.
> Does anybody knows the reason?
> Thank you in advance.

First of all, the second argument to Sort is supposed to be a True/False
function:  it must return True if the first argument should come earlier in
the sort, and False otherwise.  So your two definitions for rule should be
replaced by:

  rule[a_List,b_List]:=(a[[1]]< b[[1]] || 
                       (a[[1]]==b[[1]] && a[[2]]<b[[2]]))

However, this is just Mathematica's usual ordering rule for lists, so the
result will be the same if you simply use Sort[list].

Jack Lee
Dept. of Mathematics
University of Washington
Seattle, WA





  • Prev by Date: Re: Dot[]->1
  • Next by Date: Re: Dot[]->1
  • Previous by thread: Re: Sorting of pairs
  • Next by thread: Re: Dot[]->1