27.08.2013 Views

Prolog: Listas

Prolog: Listas

Prolog: Listas

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Unificación<br />

Ya vimos algunos ejemplos, pero hay mas:<br />

[a,b,c]=[X,Y,Z]<br />

X=a, Y=b, Z=c<br />

[a,b,c] = [A, B, C|D]<br />

A=a, B=b, C=c, D=[]<br />

[a]=[A|B]<br />

A=a, B=[]<br />

[a,b,c,d,e] = [X,Y| Z]<br />

X=a, Y=b, Z=[c,d,e]<br />

[a,b,c] = [X,[Y|Z]]<br />

No, espera que el segundo<br />

elemento de la lista sea una lista.<br />

[]=[X|Y] o [] = [X]<br />

No!, la lista vacia no se puede dividir en cabeza y<br />

cola<br />

Es útil cuando definimos predicados de corte,<br />

para estar seguros que una lista vacia no hace<br />

match con una división cabeza-cola.<br />

Por ej:<br />

sumar([],R):-R=0. Mejor: sumar([],0).<br />

sumar([ X | Y ],R) :- sumar(Y, R1), R is R1+X.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!