Prolog é linguagem declarativa usada em inteligência artificial e linguística. Diferente de linguagens procedurais, programas Prolog são definidos como série de regras e equações, não passos. O código a seguir descreve como remover duplicatas de uma lista em Prolog.
Abra um editor de texto, como Bloco de Notas, e salve como "remove_dups.pl".
Digite o código entre as barras (sem as barras):
% remove_dups(+List, -NewList): % New List is bound to List, but with duplicate items removed. remove_dups([], []). remove_dups([First | Rest], NewRest) :- member(First, Rest), remove_dups(Rest, NewRest). remove_dups([First | Rest], [First | NewRest]) :- not(member(First, Rest)), remove_dups(Rest, NewRest).
A função "remove_dups" tem três regras. A primeira: se lista vazia, retorna. A segunda: se o primeiro item aparece no resto da lista, remove (duplicata) e continua com o resto chamando remove_dups recursivamente. A terceira: se o primeiro membro não está no resto, mantém e continua.
Salve com "Ctrl + S".
Linguagens como C e Java usam loops iterativos; linguagens declarativas/funcionais como Prolog usam recursão — chamam a mesma função em subconjuntos menores. Alguns problemas são mais fáceis com recursão, embora difícil para programadores acostumados só a loops iterativos.
Tecnologia Eletrônica © [www.351231.com]