Listas en Prolog
|
|
Título del Test:![]() Listas en Prolog Descripción: Repaso de listas en Prolog |



| Comentarios |
|---|
NO HAY REGISTROS |
|
Se tiene definido: padre(juan, alberto). padre(juan, marcos). padre(luis, fernando). Cómo definirías hermano(X,Y). hermano(X,Y):- padre(A,X), padre(A,Y). hermano(X,Y):- padre(X,A), padre(Y,A). hermano(X,Y):- padre(A,X), padre(Y,A). hermano(X,Y):- padre(X,A), padre(A,Y). Se tiene definido: padre(juan, alberto). padre(juan, marcos). padre(luis, fernando). Cómo definirías nieto(X,Y). nieto(Y,Z):- padre(Z,X), padre(X,Y). nieto(Y,Z):- padre(Z,Y), padre(Y,X). nieto(Y,Z):- padre(Z,X), padre(Y,X). nieto(Y,Z):- padre(X,Z), padre(Y,X). Se tiene definido: padre(juan, alberto). padre(juan, marcos). padre(luis, fernando). Cómo definirías abuelo(X,Y). abuelo(X,Y):-padre(X,Z),padre(Z,Y). abuelo(X,Y):-padre(Z,X),padre(Z,Y). abuelo(X,Y):-padre(X,Z),padre(Y,Z). abuelo(X,Y):-padre(Z,X),padre(Y,Z). [X|Y]. X representa a un ítem y es la cabeza. Y representa a un ítem y es la cabeza. X representa a la cola de la lista. Y representa a el último elemento de la lista. [a,b,c] = [ a | [b,c] ]. Esta correcta la igualdad. No corresponde a una igualdad. La lista [b,c] debería ir adelante. No son compatibles. quesera(X,[X| _ ]). quesera(X,[ _ |L]) :- quesera(X,L). Retorna True si X pertenece a la LISTA. Retorna True si X es el primer elemento de la LISTA. Retorna True si X es el último elemento de la LISTA. Retorna True si X no pertenece a la LISTA. quesera([ ],0). quesera([ _ | Y],N) :- quesera(Y,M), N is M+1. Retorna la cantidad de items que tiene la LISTA. Retorna en qué índice se encuentra Y en la LISTA. Retorna el primer índice de la LISTA. Retorna el último índice de la LISTA. Se tiene definido: padre(juan, alberto). padre(juan, marcos). padre(luis, fernando). Cómo definirías primo(X,Y). primo(X,Y):padre(Z,X),hermano(W,Z),padre(W,Y). primo(X,Y):padre(X,Z),hermano(W,Z),padre(W,Y). primo(X,Y):padre(Z,X),hermano(Z,W),padre(W,Y). primo(X,Y):padre(Z,X),hermano(W,Z),padre(Y,W). Se tiene definido: varon(eduardo). varon(francisco). mujer(alicia). mujer(veronica). progenitor(eduardo,francisco). progenitor(victoria,francisco). Cómo definirías hermana(X,Y). hermana(X,Y) :- mujer(X),progenitor(P,X),progenitor(P,Y). hermana(X,Y) :- mujer(Y),progenitor(P,Y),progenitor(P,X). hermana(X,Y) :- mujer(X),progenitor(P,Y),progenitor(P,X). hermana(X,Y) :- mujer(Y),progenitor(P,Y),progenitor(P,Y). Se tiene definido: varon(eduardo). varon(francisco). mujer(alicia). mujer(veronica). progenitor(eduardo,francisco). progenitor(victoria,francisco). Cómo definirías hijo(X,Y). hijo(X,Y) :- varon(X),progenitor(Y,X). hijo(X,Y) :- varon(Y),progenitor(Y,X). hijo(X,Y) :- varon(X),progenitor(X,Y). hijo(X,Y) :- varon(Z),progenitor(Y,X). Se tiene definido: varon(eduardo). varon(francisco). mujer(alicia). mujer(veronica). progenitor(eduardo,francisco). progenitor(victoria,francisco). Cómo definirías nieto(X,Y). nieto(X,Y):- varon(X),progenitor(Y,V),progenitor(V,X). nieto(X,Y):- varon(Y),progenitor(Y,V),progenitor(V,X). nieto(X,Y):- varon(X),progenitor(X,V),progenitor(V,X). nieto(X,Y):- varon(X),progenitor(Y,V),progenitor(V,Y). quehace(X,X,X). quehace(X,Y,Z):- X < Y, Y1 is Y - X, quehace(X,Y1,Z). quehace(X,Y,Z):- X > Y, quehace(Y,X,Z). Qué resultado tendría: quehace(10,15,X). X = 5. X = 3. X = 30. X = 150. quehace([X],X). quehace([X1,X2 | L], Y) :- X3 is max(X1, X2), quehace([X3 | L], Y). Qué resultado tendría: quehace([1,3,9,5],X). X = 9. X = 1. X = 5. X = 4.5. quehace( [ ], 0 ). quehace( [ X | L ], Y):- quehace(L, Y1), Y is X+Y1. Qué resultado tendría: quehace([1,3,5,7],X). X=16. X=1. X=7. X=4. quehace(X,Y) :- progenitor(X,Z),pareja(Y,Z),diferente(Z,Y),varon(X). Verifica si X es suegro de Y. Verifica si X es hermano de Y. Verifica si X es primo de Y. Verifica si X es hermano de Y. quehace(X,Y) :- progenitor(X,Z),progenitor(W,Z),diferente(X,W),hermanos(W,Y),varon(X). Verifica si X es cuñado de Y. Verifica si X es hermano de Y. Verifica si X es primo de Y. Verifica si X es tío de Y. |





