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.
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
Astuce : utilisez la fonction eq, qui compare deux adresses.

mon essai :
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)) ) )
mais ça ne marche pas :s

de l'aide svp