/****************************************************************************
Programa que permite realizar el ordenamiento
de los elementos de una lista.
Inteligencia Artificial
Gonzalo Villarreal Farah
Para Turbo Prolog 2.0 de la Borland
****************************************************************************/
domains
lista=integer*
predicates
bublesort(lista,lista)
swap(lista,lista)
gt(integer,integer)
clauses
bublesort(List,Sorted):-
swap(List,List1),!,
bublesort(List1,Sorted).
bublesort(Sorted,Sorted).
swap([X,Y|Rest],[Y,X|Rest]):-
gt(X,Y).
swap([Z|Rest],[Z|Rest1]):-
swap(Rest,Rest1).
gt(X,Y):-
X>Y.