[CLJ-969] Symbol/keyword implements IFn for lookup but a non-collection argument produces non-intuitive results Created: 09/Apr/12 Updated: 20/Nov/15
('+ 1 2) ;; return 2 because it is treated as (get 1 '+ 2)
Whilst this is "consistent" once you know the lookup behavior, it's confusing for Clojure newbies and it seems to be a non-useful behavior.
Proposal: modify Keyword.invoke() and Symbol.invoke() to restrict first Object argument to instanceof ILookup, Map or IPersistentSet (or null) so that the "not found" behavior doesn't produce non-intuitive behavior.
This should track CLJ-1107.
|Comment by zjhmale [ 20/Nov/15 1:45 AM ]|
a patch to fix this issue
|Comment by zjhmale [ 20/Nov/15 1:46 AM ]|
user=> ('+ 1 2)
and everything else works fine