Advertisement
Guest User

Untitled

a guest
Jun 11th, 2017
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. local
  2.     fun min [] = ~1
  3.         | min [m] = m
  4.         | min(m::n::ns) =
  5.             if m < n then min(m::ns)
  6.             else min(n::ns);
  7.  
  8.     fun isOrdinata [] = true
  9.       | isOrdinata [m] = true
  10.       | isOrdinata(m::n::ns) =
  11.             if(m < n) then isOrdinata(n::ns)
  12.             else false;
  13.  
  14.     fun sort [] = []
  15.         | sort [x] = [x]
  16.         | sort(x :: y :: ys) =
  17.             if (isOrdinata(x::y::ys) = false) then
  18.                 if x = min(x :: y :: ys) then [x] @ sort(y::ys)
  19.                 else if y = min(x :: y :: ys) then [y] @ sort(x::ys)
  20.                 else sort(ys @ [y] @ [x])
  21.             else
  22.                 (x :: y :: ys);
  23.  
  24. in
  25.     fun ordina list = sort(list);
  26. end;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement