(doc condp) =>
... For each clause, (pred test-expr expr) is evaluated. If it returns logical true, the clause is a match. ...
That means that on the average case you will have m/2 comparisons where m is the number of entries in your hash-map so you might find a better solution if performance matters in your scenario.
Anyway Here you have an alternative solution, I don't say it's more efficient, just a little bit easier to read for the average coder as myself
(def n 90) (def clauses (hash-map 50 "value50", 100 "value100")) (get clauses (first (filter #(< n %) (sort (keys clauses)))) "default")
Edited to ensure in order evaluation of clauses