Seguimos con Clojure...
Hay varias formas de buscar un valor en un mapa. La más obvia es la función get:
user=> (get scores "Angela")
1024
Cuando el mapa en cuestión se trata como una tabla de búsqueda constante, es común invocar el mapa en sí, tratándolo como una función:
user=> (def directions {:north 0
:east 1
:south 2
:west 3})
#'user/directions
user=> (directions :north)
0
No debe invocar directamente un mapa a menos que pueda garantizar que el resultado no será nulo:
user=> (def bad-lookup-map nil)
#'user/bad-lookup-map
user=> (bad-lookup-map :foo)
Execution error (NullPointerException) at user/eval154 (REPL:1).
null
Si deseamos realizar una búsqueda pero esperamos retornar a un valor predeterminado cuando no se encuentra la clave, debemos especifique el valor predeterminado como un parámetro adicional:
user=> (get scores "Sam" 0)
0
user=> (directions :northwest -1)
-1
El uso de un valor predeterminado también es útil para distinguir entre una clave que falta y una clave existente con un valor nulo.