Friday, October 27, 2023

Clojure 取代 if 的技巧 (2) --- cond->

問題:

有時候,我們會想要表達一種語意 (semantic)

if (c) {
  hm[x] = y
}

這種語意在 Clojure 會略顯得冗長

(if c
    (assoc hm :x y)
    hm)

但是,其實可以這樣子表達

(cond-> hm
   c (assoc :x y))