Advertisement
Guest User

Untitled

a guest
Jun 13th, 2017
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. local
  2.  
  3.     fun estrai (entra(_, b)) = b
  4.         | estrai (esce(_, b)) = b;
  5.     (* oppure
  6.         fun estrai el = case el of
  7.               (entra(_, b)) => b
  8.             | (esce(_, b)) => b;
  9.      *)
  10.  
  11.  
  12.     fun isOrdinata [] = true
  13.       | isOrdinata [e] = true
  14.       | isOrdinata(m::n::ns) =
  15.             if(estrai(m) < estrai(n)) then
  16.                 isOrdinata(n::ns)
  17.             else false;
  18.  
  19.      fun sort [] = []
  20.         | sort [x] = [x]
  21.         | sort(x :: y :: ys) =
  22.             if (isOrdinata(x::y::ys) = false) then
  23.                 if estrai(x) < estrai(y) then
  24.                     sort(x :: sort(y::ys))
  25.                 else
  26.                     sort(y :: sort(x::ys))
  27.             else
  28.                 (x :: y :: ys);
  29.    
  30.  
  31. in
  32.     fun ordina list = sort(list);
  33. end;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement