Escolar Documentos
Profissional Documentos
Cultura Documentos
Prolog
Prolog
pl Page 1
% Procurar elemento na posição k
findk(1,[X|_],X).
findk
findk(K,[_|Tail],X):-
:- Kaux is K-1, findk(Kaux,Tail,X).
% Comprimento da Lista
len([],0).
len([_|Tail],L):-
len :- len(Tail,Laux),L is Laux+1.
% Inverter a Lista
reverte(L1,L2):-
:- rev(L1,L2,[]).
rev([Head|Tail],L2,LRev) :- rev(Tail,L2,[Head|LRev]).
rev([],L2,L2).
rev
% Verificar se é um palindromo
palindrome(L1):-
:- reverte(L1,L1).
nao_pertence :- \+
(X,Lista):- pertence(
X,Lista).
stand(vegas,[
cliente(rui,2324,23,medico,[ carro(audi,a2,20000),
carro(bmw,serie3,30000)]),
cliente(rita,2325,32,advogado,[carro(audi,a3,30000)]),
cliente(joao,2326,26,professor,[moto(honda,gl1800,26000)]),
cliente(ana,2327,49,medico,[
carro(audi,a4,40000),
carro(bmw,serie3,32000),
carro(ford,focus,24000)])
]).
stand(miami,[
stand
cliente(rui,3333,33,operario,[carro(fiat,panda,12000)]),
cliente(paulo,3334,22,advogado,[carro(audi,a4,36000)]),
cliente(pedro,3335,46,advogado,[carro(honda,accord,32000),
carro(audi,a2,20000)])
c:\users\pedro\documents\prolog\l3.pl Page 2
]).
%X = miami,
%C = [rui, paulo, pedro]
happy(fido).
happy
happy(harry).
happy
happy(X)
happy :- rich(X).
rich(harry).
nota(ana, 14).
nota(rui, 13).
nota(sara,
nota 13).
nota(ze,
nota 16).
nota(sara,13).
nota
foo(a, b, c).
foo(a, b, d).
foo(b,
foo c, e).
foo(b,
foo c, f).
foo(c,
foo c, g).
criminal(P):-
:-american(P), weapon(W), nation(N), hostile(N), sells(P,N,W).
owns(nono,m1).
missil(m1).
sells(west,nono,
sells :-owns(nono,
W):-
:- W),missil(W).
weapon(W):-
:-missil(
:- W).
hostile(N):-
:-enemy(
:- N,america).
american(west).
nation(nono).
enemy(nono,america).
nation(america).
%Juntar 2 lista
adicionar([],L2,L2).
adicionar([X|L1],L2,[X|LF]):-
:-adicionar(L1,L2,LF).
%Separar Lista
%([a-1,b-2,c-3],L1,L3).
%L1 = [a,b,c]
%L2 = [1,2,3]
%
sep1([],[],[]).
sep1([(X-Y)|Tail],[X|L1],[Y|L2]) :- sep1(Tail,L1,L2).