% auxiliares append(L,[],L). append([X|L],[X|I],F) :- append(L,I,F). % tradutor simples dict1(o,the). dict1(gato,cat). dict1(mia,miaus). dict1(estuda,studies). % tradutor de listas dict2([ciencias,da,computacao],[computer,science]). t2(L1,L2) :- append(L1,L11,L12), dict2(L11,L21), t2(L12,L22), append(L2,L21,L22). t2([],[]). t2([X1|L1],[X2|L2]) :- dict1(X1,X2), t2(L1,L2). t2([X|L1],[+X|L2]) :- t2(L1,L2). % teste: run(P,I) :- ex(P), t2(P,I). ex([o,gato,mia]). ex([o,gato,estuda,ciencias,da,computacao]).