I'm not 100% sure but this is a side effect of the property that symbols
can be used as functions that find themselves on maps.
For instance:
(def m {'a 1 'b 2 'c 3})
('a m)
;=> 1
('b m)
;=> 2
and, when the symbols is not found, we have:
('d m)
;=> nilurn
('d m :nono)
;=> :nono
So a symbol is a function with one or two parameters, the first one the map
to find itself too and the second, the value to return if not found.
In your example 1 is the supposed map (and 'foo is never found on it) and 2
is the default value to use.
If you want to read the implementation is in
clojure.lang.Symbol<https://github.com/clojure/clojure/blob/master/src/jvm/clojure/lang/Symbol.java>
.
Juan Manuel
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to [email protected]
Note that posts from new members are moderated - please be patient with your
first post.
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en