Q14: de_begayer

Profil

de_begayer: liste -> liste

Exemples

de_begayer( (a b a a c b b) ) = (a b a c b)

Il faut créer une nouvelle liste -> on passe par une fonction auxiliaire

de_begayer( (a b a a c b b) )
 =  aux( (a b a a c b b), ( ) )
 =  aux( (b a a c b b), ( a ) ) 
 =  aux( (a a c b b), ( a b ) ) 
 =  aux( (a c b b), ( a b a ) ) 
 =  aux( (c b b), ( a b a ) ) 
 =  aux( (b b), ( a b a c ) ) 
 =  aux( (b), ( a b a c b ) ) 
 =  aux( (), ( a b a c b ) ) 
 =  ( a b a c b ) 

Axiomes

de_begayer(L) = aux(L, liste_vide())
aux(liste_vide(), L) = L
aux(cons(x1, L1), liste_vide()) = aux(L1, cons(x1, liste_vide()))
aux(cons(x1, L1), cons(x2, L2)) = si_alors_sinon_finsi(x1 = x2, aux(L1, cons(x2, L2)), aux(L1, snoc(x1, cons(x2, L2))))