Skip to content

Instantly share code, notes, and snippets.

@mrsolarius
Created March 9, 2022 09:42
Show Gist options
  • Save mrsolarius/b1b06acc0cc9604da8a2108b4ef80c69 to your computer and use it in GitHub Desktop.
Save mrsolarius/b1b06acc0cc9604da8a2108b4ef80c69 to your computer and use it in GitHub Desktop.
Comment effectuer la suppresion d'un element dans une liste ?
% Spéc et implementation d'une fonction qui de suppresion d'un élément dans une liste.
%
% Deux interpretations possibles :
% 1 : On supprime l'élément E dans la liste L
% 2 : On supprime tous les éléments E dans la liste L
%
% Spéc : suppr1(X,L) = X\{L}, seulement la première occurence de X dans L
% Exemple:
% suppr1(2,[1,2,3,2]) = [1,3,2]
% Réalisation Version 1 (supprime le premier élément E dans la liste L):
% Analyse sur L : 2 cas
% 1) L = [] : dans se cas rien à supprimer
suppr1(_,[])->[];
% 2) L =/= [] : L = [Pr|Fin]
% a) X = Pr : vrai
suppr1(X,[X|Fin])->Fin;
% b) X =/= Pr
suppr1(X,[Pr|Fin]) when X=/=Pr -> [Pr|suppr1(X,Fin)].
% Réalisation Version 2 (supprime tous les éléments E dans la liste L):
% Analyse sur L : 2 cas
% 1) L = [] : dans se cas rien à supprimer
suppr2(_,[])->[];
% 2) L =/= [] : L = [Pr|Fin]
% a) X = Pr : vrai
suppr2(X,[X|Fin])->suppr2(X,Fin);
% b) X =/= Pr
suppr2(X,[Pr|Fin]) when X=/=Pr -> [Pr|suppr2(X,Fin)].
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment