Prolog - Aula 3 --------------- Continua,c~ao da defini,c~ao de quicksort qsort ([],[]). qsort ([x],[x]). qsort ([x,y|z],w) :- partir (x,[y|z],P,G), qsort (P, POrd), qsort (G, GOrd), append (POrd,[x],aux); append (aux,GOrd,w). partir (_,[],[],[]). partir (x,[y|z],[y|P],G):- y <= x, partir (x,z,P,G). partir (x,[y|z],P,[y|G]):- y > x, partir (x,z,P,G). obs: _ 'e variavel an^onima. outra forma de escrever partir: partir(x,[y|z],P,G) :- partir (x,z,A,B), ((y <= x, p = [y|A], G = B); (y > x, p = A, G = [y|B])). chamada Hipot'etica: partir (3,[2,1,5,6],P1,G1) cabe,ca : partir (x,[y|z],[y|P2],G2) x=3 y=2 z=[1,5,6] P1=[2|P2] G1=G2 Submeta : partir (3,[1,5,6],P2,G2) P2=[1] G2=[5,6] obs: na submeta as vari'aveis entram n~ao instanciadas chamada Hipot'etica: partir (3,[4,1,5,6],P1,G1) cabe,ca : partir (x,[y|z],P2,[y|G2]) x=3 y=4 z=[1,5,6] P2=P1 G1=[4,G2] Submeta : partir (3,[1,5,6],P2,G2) P2=[1] G2=[5,6] ----------------------------------------------------------------------------- Notas tomadas por Melissa Gigliotti - RA 951822 Editadas por Jo~ao Meidanis