Java’s switch equivalent in Clojure?

case is a good option as pointed out by Jan

cond is also very useful in many related circumstances, particularly if you want to switch on the basis of evaluating a range of different conditional expressions, e.g.

(defn account-message [balance]
  (cond 
    (< balance 0) "Overdrawn!"
    (< balance 100) "Low balance"
    (> balance 1000000) "Rich as creosote"
    :else "Good balance"))

Note that the result of cond is determined by the first matching expression, so a negative balance will display “Overdrawn!” even though it also matches the low balance case.

[I have edited the code – removed the extra bracket at the end to make it work]

Leave a Comment

Hata!: SQLSTATE[HY000] [1045] Access denied for user 'divattrend_liink'@'localhost' (using password: YES)