Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local
- fun estrai (entra(_, b)) = b
- | estrai (esce(_, b)) = b;
- (* oppure
- fun estrai el = case el of
- (entra(_, b)) => b
- | (esce(_, b)) => b;
- *)
- fun isOrdinata [] = true
- | isOrdinata [e] = true
- | isOrdinata(m::n::ns) =
- if(estrai(m) < estrai(n)) then
- isOrdinata(n::ns)
- else false;
- fun sort [] = []
- | sort [x] = [x]
- | sort(x :: y :: ys) =
- if (isOrdinata(x::y::ys) = false) then
- if estrai(x) < estrai(y) then
- sort(x :: sort(y::ys))
- else
- sort(y :: sort(x::ys))
- else
- (x :: y :: ys);
- in
- fun ordina list = sort(list);
- end;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement