probleme fonction pour detection circularité
Voila ca fait une semaine que je me prend la tete et je n'arrive pas à faire cet exo je dois créer une fonction qui détecte une circularité
Ecrire la fonction récursive circulaire qui détecte qu'une liste plate (sans sous-listes) est circulaire par son début.
Code:
1 2 3 4 5
| (setq liste '(a b c))
(rplacd (cddr liste) liste)
(circulaire liste) => t
(circulaire '(a b c a b c)) => nil |
Utilisez la fonction eq, qui compare deux adresses.
voila ce que j'ai pondu
mais ca ne marche pas
merci de m'expliquer
Code:
1 2 3 4 5 6
| (defun circulaire (liste &aux frst)
(setq frst (car liste))
(atom (liste) nil)
(cond
((eq (cadr liste) frst) t)
((circulaire (cdr liste))) )) |
merci