Q11: snoc

Profil

snoc: typelt x liste -> liste

Exemples

snoc(z, (a b c)) = (a b c z)

On connait la fonction cons et la fonction renverser:

(a b c z) = renverser( (z c b a) ) = renverser( cons(z, (c b a)) ) = renverser(cons(z, renverser(a b c)) )

Axiomes

snoc(x, L) = renverser(cons(x, renverser(L)))

Traduction en C

liste snoc(TYPEELT val, liste L)
{
  return renverserI(cons(val, renverserI(L)));
}