Exemplos de códigos em Prolog

COMPARTILHAR:

Whatsapp Telegram Twitter Facebook Reddit

Confira exemplos de códigos na linguagem de programação Prolog.


Abaixo você confere exemplos de códigos em Prolog para aprendizado de programação lógica. Você pode rodar o código abaixo copiando e colando em algum compilador de Prolog online, clicando aqui você encontra um.

nElementos([],0).
nElementos([_|L],S) :- nElementos(L,V), S is (V+1).

maior([A],A).
maior([X|L],M) :- maior(L,N),(N > X -> M=N;M=X).

soma([],0).
soma([X|L],S) :- soma(L,V), S is (V+X).

medio([],0).
medio(L,M) :- soma(L, S), nElementos(L, N), M is S/N.

inserirfim(X,[],[X]).
inserirfim(X,[A|Z],[A|Y]) :- inserirfim(X,Z,Y). 

ultimo([A],A).
ultimo([_|X],U) :- ultimo(X,U).

adjacente(X,Y,[X,Y | _]).
adjacente(X,Y,[Z | L]) :- X \== Z, adjacente(X,Y,L).

gerar(A,A,[A]).
gerar(X,Y,[X | L]) :- S is X+1, gerar(S,Y,L).

concatenar([],L,L).
concatenar([X|L1],L2,[X|L3]) :- concatenar(L1,L2,L3).

reverter([],[]).
reverter([A|Z],L) :- reverter(Z,L2), concatenar(L2,[A],L).

incrementar([],[]).
incrementar([A|Z],[B|L]) :- incrementar(Z,L), B is A+1.

linearizar([A|[]],A).
linearizar([A|[B|L1]],L2) :- concatenar(A,B,C), linearizar([C|L1],L2).

anexar([], L, L).
anexar([X|L1], L2, [X|L3]) :- anexar(L1, L2, L3).

remover(_,[],[]).
remover(X, [X|T], NT) :- remover(X,T,NT).
remover(X, [Y|T], [Y|NT]) :- X \== Y, remover(X, T, NT).

rotacionar([],[]).
rotacionar([A|Z],L) :- anexar(Z,[A],L).

rotacionarn([],[]).
rotacionarn(X,Z,L) :- remover(X,Z,M), anexar(M,[X],L).

ordenar([],[]).
ordenar([A],[A]).
ordenar(X,L) :- maior(X,M), remover(M,X,N), ordenar(N,O), anexar(O,[M],L).

Você pode rodar os seguintes casos de testes abaixo, confira logo abaixo também o resultado do caso de teste:

?- nElementos([1,2,3], S).
S = 3

?- maior([4,5,2,3,1], M).
M = 5

?- medio([4,5,2,3,1], M).
M = 3

?- inserirfim(4, [1,2,3], L).
L = [1,2,3,4]

?- ultimo([1,2,3,4], U).
U = 4

?- adjacente(3, 4, [1,2,3,4,5,6]).
True

?- gerar(5,10,L).
L = [5,6,7,8,9,10]

?- reverter([1,2,3], L).
L = [3,2,1]

?- incrementar([5,6,7,8], L).
L = [6,7,8,9]

?- linearizar([[1,2,3], [4,5], [6], [7,8]], L).
L = [1,2,3,4,5,6,7,8]

?- anexar([1,2,3], [4,5,6], L).
L = [1,2,3,4,5,6]

?- remover(3, [1,3,2,3,4], L).
L = [1,2,4]

?- rotacionar([1,2,3,4,5], L).
L = [2,3,4,5,1].

?- rotacionarn(2, [1,2,3,4,5], L).
L = [1, 3, 4, 5, 2]

?- ordenar([3, 1, 2], L).
L = [1,2,3]

COMENTÁRIOS

Nome

#ann,25,#HK,30,#LTCode,126,Artigo - Diversos,156,Artigo - Games,200,Artigo - Tecnologia,598,autor-thomaz,7,Coluna - Alternative World,24,Coluna - Fail,12,Coluna - Tec Line,14,Criptomoeda,71,Curiosidades - Diversos,49,Curiosidades - Tecnologia,50,en,2,estudo,8,HN,12,logica,14,Pentest,23,Programar C,29,Programar POO,6,Programar Python,6,Programar Shell,21,Programar verilog,12,Raspberry Pi,15,Redes,3,root,101,Shorty Awards,1,Smartphones - Reviews,33,Teoria,10,Top Nostalgia,2,VPN,18,WhatsApp,46,
ltr
item
Limon Tec: Exemplos de códigos em Prolog
Exemplos de códigos em Prolog
Confira exemplos de códigos na linguagem de programação Prolog.
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiXH_h2Pjl4MSGMplmtr_fCiikkZCocKQcmfPaDzUL88J_Bhpo-irB37Zv8C97qpNefB7QWzgXR5bRXtXPOA-y6WrMc57gWjidlp1c86R5A3K7cmwvvxJqVzDVpJqC-I0blVQFfvf6_NCFj/s640/prolog.png
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiXH_h2Pjl4MSGMplmtr_fCiikkZCocKQcmfPaDzUL88J_Bhpo-irB37Zv8C97qpNefB7QWzgXR5bRXtXPOA-y6WrMc57gWjidlp1c86R5A3K7cmwvvxJqVzDVpJqC-I0blVQFfvf6_NCFj/s72-c/prolog.png
Limon Tec
https://www.limontec.com/2019/10/exemplos-codigos-prolog.html
https://www.limontec.com/
https://www.limontec.com/
https://www.limontec.com/2019/10/exemplos-codigos-prolog.html
false
2157924926610706248
UTF-8
Carregar todos posts Não encontramos nenhum post VER TUDO Ler mais Responder Cancelar resposta Deletar Por Home PÁGINAS POSTS Ver tudo RECOMENDADO PARA VOCÊ LABEL ARQUIVO SEARCH TODOS POSTS Não encontramos nenhum post relacionado a sua requisição VOLTAR PÁGINA INICIAL Domingo Segunda Terça Quarta Quinta Sexta Sábado Dom Seg Ter Qua Qui Sex Sab Janeiro Fevereiro Março Abril Maio Junho Julho Agosto Setembro Outubro Novembro Dezembro Jan Fev Mar Abr Maio Jun Jul Ago Set Out Nov Dez apenas agora 1 minuto atrás $$1$$ minutes ago 1 hora atrás $$1$$ hours ago Ontem $$1$$ days ago $$1$$ weeks ago mais de 5 semanas atrás Seguidores Seguir ESTE CONTEÚDO ESTÁ BLOQUEADO PASSO 1: Compartilhe com seus amigos PASSO 2: Clique no link compartilhado Copiar Todo Código Selecionar Todo Código Todos códigos foram copiados para seu clipboard Não é possível copiar códigos / textos, por favor aperte [CTRL]+[C] (ou CMD+C no Mac) para copiar Tabela de conteúdo