cond

cond associe une condition à une valeur. Chaque condition sera évaluée séquentiellement, et si la condition est vraie, cond retournera la valeur associée.

Rappelez vous, en Clojure, à part nil et false, tout vaut vrai. Vous pouvez donc facilement définir une clause par défaut, toujours évaluée à vrai, via un keyword par exemple.

Si aucune clause n'est vraie, cond retourne nil

Un exemple

(cond
 (= 1 2) "1 == 2 ?!"
 (= 1 3) "1 == 3 ?!"
 :default "A default value")

On voit ici que l'on teste plusieurs conditions. Aucune condition n'est valide, ce sera donc la condition par défaut qui sera exécutée et cette expression retournera la chaîne A default value.

En effet, comme vu précédemment, un keyword est considéré comme true. Le résultat serait le même avec une chaîne, un nombre ... excepté nil et false.

Précédent - Suivant -

;; matching clause
(println (cond
           (= 1 2) "1 == 2 ?!"
           (= 1 1) "1 == 1"))

;; default value
(println (cond
           (= 1 2) "1 == 2 ?!"
           (= 1 3) "1 == 3 ?!"
           :default "A default value"))

;; no matching clause, return nil
(println (cond
           (= 1 2) "1 == 2 ?!"
           (= 1 3) "1 == 3 ?!"))

powered by mcorbin - Available on Github