En Clojure pour les braves et vrai, chapitre 8, une fonction appelée if-valid
est proposé (puis rejeté) faire abstraction des parties répétitives des contrôles de validation:Précisions sur l'évaluation Clojure
(defn if-valid
[record validations success-code failure-code]
(let [errors (validate record validations)]
(if (empty? errors)
success-code
failure-code)))
L'auteur explique que la fonction dans son état ci-dessus ne fonctionnera pas comme success-code
et failure-code
sera évaluée sur chaque appel if-valid
. Ma compréhension est, que le test de la fonction if
retournera vrai ou faux, et cela dicte si le code succès ou échec s'exécute. S'il vous plaît quelqu'un peut-il expliquer comment à la fois alors et d'autres parties du if
seront évalués pour chaque appel if-valid
?