Comment supprimer les doublons dans Prolog

Prolog est un langage de programmation déclaratif couramment utilisé dans la recherche en intelligence artificielle et en linguistique. Contrairement aux langages procéduraux plus courants, la plupart des programmes Prolog sont définis comme une série de règles et d'équations, plutôt que comme une série d'étapes. Le code suivant décrit le processus pour supprimer les doublons d'une liste dans Prolog.

Étape 2

Tapez le code entre les barres obliques (en laissant les barres obliques elles-mêmes de côté) :

/ % remove_dups(+List, -NewList): % Nouvelle liste est liée à la liste, mais avec les éléments en double supprimés. remove_dups([], []).

remove_dups([First | Rest], NewRest) :- membre (First, Rest), remove_dups (Rest, NewRest).

remove_dups([First | Rest], [First | NewRest]) :- pas (membre (First, Rest)), remove_dups (Rest, NewRest). /

La fonction "remove_dups" est définie comme une série de trois règles. La première règle ("remove_dups([],[].)") spécifie que si la liste est vide, rien ne doit être fait; la fonction devrait simplement retourner. La deuxième règle spécifie que si le premier élément de la liste apparaît n'importe où ailleurs dans la liste, alors il doit être supprimé (puisqu'il s'agit d'un duplicate) et le traitement doit continuer en utilisant le reste de la liste en appelant à nouveau la fonction remove_dups avec le premier élément de la liste laisser derrière soi. La règle finale précise que si le premier membre de la liste n'est pas présent ailleurs dans la liste, il doit être conservé et le traitement doit se poursuivre.

Techwalla peut gagner une compensation via des liens d'affiliation dans cette histoire.