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.
Utilisez la fonction eq, qui compare deux adresses.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
voila ce que j'ai pondu
mais ca ne marche pas
merci de m'expliquer
merci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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))) ))
Partager