http://en.wikipedia.org/wiki/Trie
Also, Clojure has a nice functions called get-in and friends:
user=> (def x {:a 1 :b 'B' :c { :x "X" :y "Y" :z "Z" } :d [{:p "P"} {:q "Q"} {:r "R"}] }) #'user/x user=> (get-in x [:d 1 :q]) "Q" user=> (assoc-in x [:d 1 :q] "QQ") {:a 1, :c {:z "Z", :y "Y", :x "X"}, :b B', :d [{:p "P"} {:q "QQ"} {:r "R"}]}
http://en.wikipedia.org/wiki/Trie
Also, Clojure has a nice functions called get-in and friends: