Bonjour,
j'ai du mal à trouver la réponse de cette exercice,
2 - Fonction qui détecte une circularité
Écrire la fonction récursive circulaire qui détecte qu'une liste plate (sans sous-listes) est circulaire par son début.
Astuce : utilisez la fonction eq, qui compare deux adresses.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 (setq liste '(a b c)) (rplacd (cddr liste) liste) (circulaire liste) => t (circulaire '(a b c a b c)) => nil
mon essai :
mais ça ne marche pas :s
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 (defun circulaire (liste) (cond ((atom liste) nil) # si la liste est vide ((eq (cdr liste) (car liste) t) ((circulaire (cdr liste) (car liste)) ) )
de l'aide svp
Partager