Indentation et construction de listes
youzirhin
Messages postés
1
Date d'inscription
Statut
Membre
Dernière intervention
-
youzirhin -
youzirhin -
Bonjour à tous,
Pourriez-vous me débloquer sur cet exercice:
Je dois faire cette liste (loop (cond ((not seau) (return))) (pop seau))en mode construction et avec une indentation correcte, chose sur laquelle je bloque.
Voici ce que j'ai fait mais c'est incorrect et il manque soit une parenthèse ou un nil:
Merci pour vos réponses.>
Pourriez-vous me débloquer sur cet exercice:
Je dois faire cette liste (loop (cond ((not seau) (return))) (pop seau))en mode construction et avec une indentation correcte, chose sur laquelle je bloque.
Voici ce que j'ai fait mais c'est incorrect et il manque soit une parenthèse ou un nil:
(cons (quote loop) (cons (cons (quote cond) (cons (cons (cons (quote not) (cons (quote seau) nil) ) (cons (cons (quote return) nil) ) nil)) nil) (cons (cons (quote pop) (cons (quote seau) nil) ) nil) )
Merci pour vos réponses.>
A voir également:
- Indentation et construction de listes
- Simulateur de construction 14 - Télécharger - Simulation
- Liste déroulante de choix excel - Guide
- Logiciel de construction - Guide
- Liste de diffusion whatsapp - Guide
- Listes déroulantes en cascade excel - Guide
2 réponses
Déjà, l'indentation correcte tu en es loin, il te faudrait une ligne par "cons" et pour chacun de ses paramètres...
Pour ne pas te tromper, je te conseilles de faire la construction récursivement :
En gros tu as :
L = (loop (cond ((not seau) (return))) (pop seau))
L = (loop A B)
A = (cond ((not seau) (return)))
A = (cond C)
B = (pop seau)
C = ((not seau) (return))
C = (D E)
D = (not seau)
E = (return)
Donc tu commences ta construction avec L :
Puis tu construis A et B.
Et tu remplaces A et B par leur valeur dans L :
Tu continues ensuite en construisant C, D et E pour tout remplacer dans L :
Ce qui donne bien ce que tu veux, sans se prendre la tête...
Pour ne pas te tromper, je te conseilles de faire la construction récursivement :
En gros tu as :
L = (loop (cond ((not seau) (return))) (pop seau))
L = (loop A B)
A = (cond ((not seau) (return)))
A = (cond C)
B = (pop seau)
C = ((not seau) (return))
C = (D E)
D = (not seau)
E = (return)
Donc tu commences ta construction avec L :
L: (cons (quote loop) (cons A (cons B nil ) ) )
Puis tu construis A et B.
A: (cons (quote cond) (cons C nil ) ) B: (cons (quote pop) (cons (quote seau) nil ) )
Et tu remplaces A et B par leur valeur dans L :
L: (cons (quote loop) (cons (cons (quote cond) (cons C nil ) ) (cons (cons (quote pop) (cons (quote seau) nil ) ) nil ) ) )
Tu continues ensuite en construisant C, D et E pour tout remplacer dans L :
(cons (quote loop) (cons (cons (quote cond) (cons (cons (cons (quote not) (cons (quote seau) nil ) ) (cons (cons (quote return) nil ) nil ) ) nil ) ) (cons (cons (quote pop) (cons (quote seau) nil ) ) nil ) ) )
Ce qui donne bien ce que tu veux, sans se prendre la tête...