Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Lisibonny Beato
plato(cereales,110).
plato(berenjenas,155).
plato(leche,90).
plato(arroz,250).
plato(yuca,300).
plato(queso_frito,200).
plato(filete_res,185).
plato(pollo,150).
plato(quesillo,500).
come(juan,[arroz,pollo,quesillo]).
come(maria,[yuca,queso_frito]).
come(pedro,[cereales,leche]).
come(ana,[arroz,filete_res,berenjenas]).
pertenece(X, [X|_]).
pertenece(X, [_|Cola]) :-pertenece(X, Cola).
2.1 Escriba un predicado come_arroz/1 que le diga quienes comen arroz .(10%)
2.2 Escriba un predicado precios/0 que pida el nombre de una persona e imprima
cada plato que consume una persona conjuntamente con su precio. (20%)
Un ejemplo de ejecución sería el siguiente. Tome en cuenta que la salida debe ser
exactamente igual a esta:
3. Haga lo que se le pide con las siguientes reglas recursivas (40%, 10% c/u)
iguales(0,0).
iguales(s(X),s(Y)) :-
compress([],[]).
compress([X],[X]).
compress([X,X|Xs],Zs) :- compress([X|Xs],Zs).
compress([X,Y|Ys],[X|Zs]) :- X \= Y, compress([Y|Ys],Zs).
3.3. Se busca que la siguiente regla divida una lista en dos partes. Complete el
objetivo faltante y tome en cuenta que el segundo término representa la cantidad
de elementos que tendrá la primera lista producida:
split(L,0,[],L).
split([X|Xs],N,[X|Ys],Zs) :- N > 0, N1 is N - 1, .
surprise(I,I,[I]).
surprise(I,K,[I|L]) :- I < K, I1 is I + 1, surprise(I1,K,L).