cond
En Scheme, le conditionnel cond sélectionne l’un de plusieurs blocs à exécuter selon plusieurs tests — comme un if à branches multiples, évalué dans l’ordre jusqu’au premier succès.
Syntaxe
(cond
(test-1 consequent-1)
(test-2 consequent-2)
...
(else fallback-consequent))- Tests dans l’ordre d’écriture.
- Premier
#t: consequent exécuté,conds’arrête. elseoptionnel en repli.
Comment ça marche
- Tester chaque condition dans l’ordre.
- Exécuter le consequent correspondant ; sinon
elsesi présent.
Exemples
Exemple 1 : conséquents sur une expression
(cond
((< 3 2) "This won't run")
((= 3 3) "This will run")
(else "Fallback"))Résultat : “This will run”
Exemple 2 : actions multiples avec begin
(cond
((< 5 3)
(begin
(lumi-message "This won't run")
(* 2 3)))
((> 5 3)
(begin
(lumi-message "Condition met")
(* 5 5)))
(else
(begin
(lumi-message "Fallback")
0)))Résultat : Affiche « Condition met » et renvoie 25.
Exemple 3 : bloc let dans un conséquent
(cond
;; Cas 1 : si 0 est inférieur à -1
((< 0 -1)
(let ((x 10))
(* x x)))
;; Cas 2 : si 0 est supérieur à -1
((> 0 -1)
(let ((y 20))
(lumi-message "Positive condition met")
(+ y y)))
;; Cas par défaut : si aucune condition ci-dessus n'est remplie
(else
(let ((z 0))
z)))Résultat : Affiche « Positive condition met » et renvoie 40.
Exemple 4 : repli avec else
(cond
((< 5 3) "This won't run")
((= 5 3) "This won't run either")
(else "Fallback value"))Résultat : “Fallback value”
Résumé
condpour plusieurs conditions clairement.- Conséquents simples ou groupés avec
begin. letpour variables locales ;elserecommandé en repli.