Idiomatic clojure map lookup by keyword -


say have clojure map uses keywords keys:

(def my-car {:color "candy-apple red" :horsepower 450}) 

i know can value associated keyword either using keyword or map function , other argument:

(my-car :color) ; => "candy-apple red" (:color my-car) ; => "candy-apple red" 

i realize both forms can come in handy situations, 1 of them considered more idiomatic straightforward usage shown above?

(:color my-car) standard. there few reasons this, , won't go of them. here's example.

because :color constant, , my-car not, hotspot can inline dynamic dispatch of color.invoke(m), can't m.invoke(color) (in java pseudo-code).

that gets better if my-car happens record color field instead of plain map: clojure compiler can emit code check "hey, if my-car instance of cartype, return my-car.color; otherwise complicated, slow, hashmap lookup."


Comments

Popular posts from this blog

html - Firefox flex bug applied to buttons? -

html - Missing border-right in select on Firefox -

c# - two queries in same method -