Skip to content

Instantly share code, notes, and snippets.

@mrsolarius
Created March 16, 2022 09:33
Show Gist options
  • Save mrsolarius/cfb0c04ecf915acc8932015b177d7ef8 to your computer and use it in GitHub Desktop.
Save mrsolarius/cfb0c04ecf915acc8932015b177d7ef8 to your computer and use it in GitHub Desktop.
Comment supprimer les doublon dans une liste sur Erlang
% Spec :
% supprDbl(L) est la liste obtenue en supprimant les doublons de L
% On ne garde que la derniere occurence d'un element dans L
% Exemple :
% > supprDbl([1,2,3,3,2,1])
% [1,2,3]
% Réalisation
% 1) L=[]
% => pas de doulonc donc on la renvoie non modifier
supprDbl([])->[];
% 2) L =/= [] : 2 cas
% a) Pr appartient pas à fin, donc Pr n'est pas un doublon :
% on peut le rajouter dans la liste obtenue en supriment les doublon de fin
% b) Pr appartient à la list, donc Pr est un doublon :
% on peut rapeler la fonction sans y laisser Pr
supprDbl([Pr,|Liste])->
case lists:member(Pr,Liste) of
false -> [Pr|supprDbl(Liste)] % Correspond au cas (a)
true -> supprDbl(Liste); % Correspond au cas (b)
end.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment