home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / lifeos2.zip / LIFE-1.02 / TESTS / LF / QSORT1.LF < prev    next >
Text File  |  1996-06-04  |  709b  |  27 lines

  1. % FILE. . . . . /_/udir4/_/hassan/life/quick_sort
  2. % EDIT BY . . . Hassan Ait-Kaci
  3. % ON MACHINE. . Prlp22
  4. % STARTED ON. . Wed Jun 27 15:02:17 1990
  5.  
  6. op(500,xfy,\\)?
  7.  
  8. q_sort(L,order => O) -> undlist(dqsort(L,order => O)).
  9.  
  10. undlist(X\\Y) -> X | Y=[].
  11.  
  12.  
  13. dqsort([H|T],order => O) ->
  14.        (L1\\L2) & where((Less , More)  & split(H,T,([] , []),order => O),
  15.                        (L1 \\ [H|L3]) & dqsort(Less,order => O),
  16.                        (L3 \\ L2)    & dqsort(More,order => O)).
  17. dqsort([]) -> L\\L.
  18.  
  19. where -> @.
  20.  
  21. split(X,[H|T],(Less , More),order => O) ->
  22.         cond(O(H,X),
  23.              split(X,T,([H|Less] , More),order => O),
  24.              split(X,T,(Less , [H|More]),order => O)).
  25. split(@,[],P) -> P.
  26.  
  27.