Artifact 0e058b3c5a3f935e6ba3db1c9fd7f8af8a518c25eb4fcd8c17c886b7370ce728:
- Executable file
r37/lisp/csl/html/r37_0180.html
— part of check-in
[f2fda60abd]
at
2011-09-02 18:13:33
on branch master
— Some historical releases purely for archival purposes
git-svn-id: https://svn.code.sf.net/p/reduce-algebra/code/trunk/historical@1375 2bfe0521-f11c-4a00-b80e-6202646ff360 (user: arthurcnorman@users.sourceforge.net, size: 1671) [annotate] [blame] [check-ins using] [more...]
<A NAME=SORT> <TITLE>SORT</TITLE></A> <b><a href=r37_idx.html>INDEX</a></b><p><p> <B>SORT</B> _ _ _ _ _ _ _ _ _ _ _ _ <B>operator</B><P> <P> <P> <P> The <em>sort</em> operator sorts the elements of a list according to an arbitrary comparison operator. <P> <H3> syntax: </H3> <P> <P> <em>sort</em>(<lst>,<comp>) <P> <P> <P> <lst> is a <A HREF=r37_0053.html>list</A> of algebraic expressions. <comp> is a comparison operator which defines a partial ordering among the members of <lst>. <comp> may be one of the builtin comparison operators like <em><</em>( <A HREF=r37_0115.html>lessp</A>), <em><=</em>( <A HREF=r37_0114.html>leq</A>) etc., or <comp> may be the name of a comparison procedure. Such a procedure has two arguments, and it returns <A HREF=r37_0122.html>true</A> if the first argument ranges before the second one, and 0 or <A HREF=r37_0014.html>nil</A> otherwise. The result of <em>sort</em> is a new list which contains the elements of <lst> in a sequence corresponding to <comp>. <P> <H3> examples: </H3> <P><PRE><TT> procedure ce(a,b); if evenp a and not evenp b then 1 else 0; for i:=1:10 collect random(50)$ sort(ws,>=); {41,38,33,30,28,25,20,17,8,5} sort(ws,<); {5,8,17,20,25,28,30,33,38,41} sort(ws,ce); {8,20,28,30,38,5,17,25,33,41} procedure cd(a,b); if deg(a,x)>deg(b,x) then 1 else if deg(a,x)<deg(b,x) then 0 else if deg(a,y)>deg(b,y) then 1 else 0; sort({x^2,y^2,x*y},cd); 2 2 {x ,x*y,y } </TT></PRE><P><P> <P>