Logo Passei Direto
Buscar

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

PL/10_1_a.pl
nu(X,Y) :- \+ X=Y.
PL/10_1_b.pl
nu(X,Y) :- ( X=Y -> fail ; true ).
PL/10_1_c.pl
nu(X,X) :- !,fail.
nu(_,_) :- !.
PL/10_2.pl
unifiable([],_,[]).
unifiable([X|Xs],Term,[X|Result]) :- \+(\+ X=Term), unifiable(Xs,Term,Result).
unifiable([X|Xs],Term,Result) :- \+ X=Term, unifiable(Xs,Term,Result).
PL/11_1.pl
subset([],[]).
subset([X|Xs],[X|Ys]) :- subset(Xs,Ys).
subset(X,[_|Ys]) :- subset(X,Ys).
PL/11_2.pl
subset([],[]).
subset([X|Xs],[X|Ys]) :- subset(Xs,Ys).
subset(X,[_|Ys]) :- subset(X,Ys).
powerset(X,Y) :- findall(Z,subset(Z,X),Y).
PL/3_1.pl
connected(1,2).
connected(3,4).
connected(5,6).
connected(7,8).
connected(9,10).
connected(12,13).
connected(13,14).
connected(15,16).
connected(17,18).
connected(19,20).
connected(4,1).
connected(6,3).
connected(4,7).
connected(6,11).
connected(14,9).
connected(11,15).
connected(16,12).
connected(14,17).
connected(16,19).
path(X,Y) :- connected(X,Y).
path(X,Y) :- connected(X,Z), path(Z,Y).
PL/3_2.pl
byCar(auckland,hamilton).
byCar(hamilton,raglan).
byCar(valmont,saarbruecken).
byCar(valmont,metz).
byTrain(metz,frankfurt).
byTrain(saarbruecken,frankfurt).
byTrain(metz,paris).
byTrain(saarbruecken,paris).
byPlane(frankfurt,bangkok).
byPlane(frankfurt,singapore).
byPlane(paris,losAngeles).
byPlane(bangkok,auckland).
byPlane(losAngeles,auckland).
travel(X,Y) :- byCar(X,Y).
travel(X,Y) :- byTrain(X,Y).
travel(X,Y) :- byPlane(X,Y).
travel(X,Y) :- travel(X,Z), travel(Z,Y).
PL/3_3.pl
byCar(auckland,hamilton).
byCar(hamilton,raglan).
byCar(valmont,saarbruecken).
byCar(valmont,metz).
byTrain(metz,frankfurt).
byTrain(saarbruecken,frankfurt).
byTrain(metz,paris).
byTrain(saarbruecken,paris).
byPlane(frankfurt,bangkok).
byPlane(frankfurt,singapore).
byPlane(paris,losAngeles).
byPlane(bangkok,auckland).
byPlane(losAngeles,auckland).
travel(X,Y) :- byCar(X,Y).
travel(X,Y) :- byTrain(X,Y).
travel(X,Y) :- byPlane(X,Y).
travel(X,Y) :- travel(X,Z), travel(Z,Y).
travel(X,Y,go(X,Y)) :- byCar(X,Y).
travel(X,Y,go(X,Y)) :- byTrain(X,Y).
travel(X,Y,go(X,Y)) :- byPlane(X,Y).
travel(X,Y,go(X,Z,G)) :- travel(X,Z,go(X,Z)), travel(Z,Y,G).
PL/3_4.pl
byCar(auckland,hamilton).
byCar(hamilton,raglan).
byCar(valmont,saarbruecken).
byCar(valmont,metz).
byTrain(metz,frankfurt).
byTrain(saarbruecken,frankfurt).
byTrain(metz,paris).
byTrain(saarbruecken,paris).
byPlane(frankfurt,bangkok).
byPlane(frankfurt,singapore).
byPlane(paris,losAngeles).
byPlane(bangkok,auckland).
byPlane(losAngeles,auckland).
travel(X,Y) :- byCar(X,Y).
travel(X,Y) :- byTrain(X,Y).
travel(X,Y) :- byPlane(X,Y).
travel(X,Y) :- travel(X,Z), travel(Z,Y).
travel(X,Y,go(X,Y,car)) :- byCar(X,Y).
travel(X,Y,go(X,Y,train)) :- byTrain(X,Y).
travel(X,Y,go(X,Y,plane)) :- byPlane(X,Y).
travel(X,Y,go(X,Z,V,G)) :- travel(X,Z,go(X,Z,V)), travel(Z,Y,G).
PL/4_1.pl
combine1([],[],[]).
combine1([X|Xs],[Y|Ys],[X,Y|Zs]) :- combine1(Xs,Ys,Zs).
PL/4_2.pl
combine2([],[],[]).
combine2([X|Xs],[Y|Ys],[[X,Y]|Zs]) :- combine2(Xs,Ys,Zs).
PL/4_3.pl
combine3([],[],[]).
combine3([X|Xs],[Y|Ys],[join(X,Y)|Zs]) :- combine3(Xs,Ys,Zs).
PL/4_4.pl
mysubset([],_).
mysubset([X|Xs],Y) :- member(X,Y), mysubset(Xs,Y).
PL/4_5.pl
mysuperset(_,[]).
mysuperset(X,[Y|Ys]) :- member(Y,X), mysuperset(X,Ys).
PL/5_1.pl
accMin([],Acc,Acc).
accMin([X|Xs],Acc,Min) :- X < Acc, accMin(Xs,X,Min).
accMin([X|Xs],Acc,Min) :- X >= Acc, accMin(Xs,Acc,Min).
min(List,Min) :- List = [X|_], accMin(List,X,Min).
PL/5_2.pl
scalarMult(_,[],[]).
scalarMult(N,[X|Xs],[Y|Ys]) :- Y is N*X, scalarMult(N,Xs,Ys).
PL/5_3.pl
dot([],[],Acc,Acc).
dot([X|Xs],[Y|Ys],Acc,Result) :- NewAcc is X*Y+Acc, dot(Xs,Ys,NewAcc,Result).
dot(List1,List2,Result) :- dot(List1,List2,0,Result).
PL/6_1.pl
is_member(X,Y) :- append(_,[X|_],Y).
PL/6_2.pl
set([],Acc,Acc).
set([H|Tail],Acc,OutList) :- member(H,Acc), set(Tail,Acc,OutList).
set([H|Tail],Acc,OutList) :- set(Tail,[H|Acc],OutList).
set([H|Tail],OutList) :- set(Tail,[H],OutList).
PL/6_3.pl
flatten([], Acc, Acc).
flatten(X, Acc, [X|Acc]) :- X\=[], X\=[_|_].
flatten([X|Xs], Acc, Result) :- flatten(Xs, Acc, NewAcc), flatten(X, NewAcc, Result).
flatten(List,Flat) :- flatten(List,[],Flat).
PL/7_1.pl
s --> [].
s --> a, a, s.
a --> [a].
PL/7_2.pl
s --> x.
s --> a, s, d.
x --> [].
x --> b, b, x, c, c.
a --> [a].
b --> [b].
c --> [c].
d --> [d].
PL/7_3.pl
prop --> [p].
prop --> [q].
prop --> [r].
prop --> not, prop.
prop --> lparen, prop, and, prop, rparen.
prop --> lparen, prop, or, prop, rparen.
prop --> lparen, prop, implies, prop, rparen.
not --> [not].
lparen --> ['('].
rparen --> [')'].
and --> [and].
or --> [or].
implies --> [implies].
PL/8_1.pl
s(s(NP,VP)) --> np(NP,X,subject), vp(VP,X).
np(np(DET,N),X,_) --> det(DET,X), n(N,X).
np(np(PRO),X,Y) --> pro(PRO,X,Y).
vp(vp(V,NP),X) --> v(V,X), np(NP,_,object).
vp(vp(V),X) --> v(V,X).
det(det(DET),X) --> [DET], {lex(DET,det,X)}.
n(n(N),X) --> [N], {lex(N,n,X)}.
pro(pro(PRO),X,Y) --> [PRO], {lex(PRO,pro,X,Y)}.
v(v(V),X) --> [V], {lex(V,v,X)}.
lex(he,pro,singular,subject).
lex(she,pro,singular,subject).
lex(they,pro,plural,subject).
lex(him,pro,singular,object).
lex(her,pro,singular,object).
lex(them,pro,plural,object).
lex(the,det,_).
lex(a,det,singular).
lex(man,n,singular).
lex(woman,n,singular).
lex(men,n,plural).
lex(women,n,plural).
lex(shoots,v,singular).
lex(shoot,v,plural).
PL/8_2.pl
s(s(NP,VP)) --> np(NP,X,Y,subject), vp(VP,X,Y).
np(np(DET,NBAR,PP),X,Y,_) --> det(DET,X), nbar(NBAR,X,Y), pp(PP).
np(np(DET,NBAR),X,Y,_) --> det(DET,X), nbar(NBAR,X,Y).
np(np(PRO),X,Y,Z) --> pro(PRO,X,Y,Z).
vp(vp(V),X,Y) --> v(V,X,Y).
vp(vp(V,NP),X,Y) --> v(V,X,Y), np(NP,_,_,object).
nbar(nbar(JP),X,3) --> jp(JP,X).
pp(pp(PREP,NP)) --> prep(PREP), np(NP,_,_,object).
jp(N,X) --> n(N,X).
jp(jp(ADJ,JP),X) --> adj(ADJ), jp(JP,X).
det(det(DET),X) --> [DET], {lex(DET,det,X)}.
pro(pro(PRO),X,Y,Z) --> [PRO], {lex(PRO,pro,X,Y,Z)}.
v(v(V),X,Y) --> [V], {lex(V,v,X,Y)}.
prep(prep(PREP)) --> [PREP], {lex(PREP,prep)}.
n(n(N),X) --> [N], {lex(N,n,X)}.
adj(adj(ADJ)) --> [ADJ], {lex(ADJ,adj)}.
lex(i,pro,singular,1,subject).
lex(you,pro,singular,2,subject).
lex(he,pro,singular,3,subject).
lex(she,pro,singular,3,subject).
lex(it,pro,singular,3,subject).
lex(we,pro,plural,1,subject).
lex(you,pro,plural,2,subject).
lex(they,pro,plural,3,subject).
lex(me,pro,singular,1,object).
lex(you,pro,singular,2,object).
lex(him,pro,singular,3,object).
lex(her,pro,singular,3,object).
lex(it,pro,singular,3,object).
lex(us,pro,plural,1,object).
lex(you,pro,plural,2,object).
lex(them,pro,plural,3,object).
lex(shoot,v,singular,1).
lex(shoot,v,singular,2).
lex(shoots,v,singular,3).
lex(shoot,v,plural,_).
lex(the,det,_).
lex(a,det,singular).
lex(man,n,singular).
lex(woman,n,singular).
lex(table,n,singular).
lex(cow,n,singular).
lex(shower,n,singular).
lex(on,prep).
lex(under,prep).
lex(men,n,plural).
lex(women,n,plural).
lex(small,adj).
lex(frightened,adj).
lex(big,adj).
lex(fat,adj).
PL/9_1.pl
pptree(s(NP,VP)) :- write('s('), nl,tab(4), pptree(NP,4), nl,tab(4), pptree(VP,4),write(')').
pptree(det(DET)) :- write('det('), write(DET), write(')').
pptree(n(N)) :- write('n('), write(N), write(')').
pptree(v(V)) :- write('v('), write(V), write(')').
pptree(np(N),I) :- Indent is I+4, write('np('), nl, tab(Indent), pptree(N), write(')').
pptree(np(DET,N),I) :- Indent is I+4, write('np('), nl, tab(Indent), pptree(DET), nl, tab(Indent), pptree(N), write(')').
pptree(vp(V),I) :- Indent is I+4, write('vp('), nl, tab(Indent), pptree(V), write(')').
pptree(vp(V,NP),I) :- Indent is I+4, write('vp('), nl, tab(Indent), pptree(V), nl, tab(Indent), pptree(NP,Indent), write(')').
PL/9_2.pl
:- op(100, fx, not).
:- op(200,
xfy, and).
:- op(300, xfy, or).
:- op(400, xfy, implies).

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?