
% Exercício 1
max(X,Y,X):- X>Y,!.
max(_,Y,Y).

% Exercício 2
digito(0).
digito(1).
digito(2).

ternario([H]) :- !, digito(H).
ternario([H|T]) :- !, digito(H), ternario(T).

% Exercício 3
tipo(X, simples):- atomic(X),!.
tipo(X, composto):- compound(X),!.
tipo(_, outro).
verificar(L, R) :- maplist(tipo, L, R). 

% Exercício 4
:- dynamic item/3.
item(arroz, 10, alimento).
item(feijao, 5, alimento).
item(sabao ,8, limpeza).
item(acucar, 7, alimento).
item(carne, 16, alimento).
item(tomate, 17, alimento).
item(esponja, 3, limpeza).
item(detergente, 4, limpeza).

% Exercício 4.1
lista_alimentos(L) :- 
  findall( item(X,Y,Z), (item(X,Y,Z), Y>=10), L). 

% Exercício 4.2
cria_alimentos :- 
  findall(alimento(X,Y), (item(X,Y,alimento)), L), maplist(assert, L). 

% Exercício 4.3
escrever(X) :- 
  open('limpeza.txt', append, F), write(F, X), write(F,'.\n'), close(F).

escrever_todos :-
  findall(item(X,Y,Z), item(X,Y,Z), L), maplist(escrever, L).




