Tuesday, July 3, 2007

bouble sort in prolog

domains
List = integer*
Sorted = integer*
Rest = integer*

predicates
Bsort(List,List)
Swap(List,List)

clauses
Bsort(List,Sorted):-
Swap(List,List1),!,
Bsort(List1,Sorted).
Bsort(Sorted,Sorted).

Swap([X,Y|Rest],[Y,X|Rest]):- X>Y.
Swap([Z|Rest],[Z|Rest1]):-
Swap(Rest,Rest1).

No comments: