What is the meaning of:
('+ '1 '2)
On the surface it appears that '2 is simply the last evaluated, but
lets try some similar calls:
user=> ('+)
java.lang.IllegalArgumentException: Wrong number of args passed to:
Symbol
user=> ('+ '1)
nil
user=> ('+ '1 '2)
2
user=> ('+ '1 '2 '3)
java.lang.IllegalArgumentException: Wrong number of args passed to:
Symbol
user=> ('1 '2 '3)
java.lang.ClassCastException: java.lang.Integer cannot be cast to
clojure.lang.Fn
Non-empty Lists are considered calls to either special forms, macros,
or functions. A call has the form (operator operands*).
'+ is just (quote +) which returns a Symbol. That Symbol is being
treated as a function which can have 1 or 2 arguments. My guess this
is actually looking up a symbol in the symbol list???
user=> ('a 2 +)
#<core$_PLUS___230 clojure.core$_plus___...@8d0b0f>
Regards,
Tim.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Clojure" group.
To post to this group, send email to [email protected]
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
-~----------~----~----~----~------~----~------~--~---