3 ms·
Yes, they have the same syntax, but the semantics are different: "that macro function is called and is passed the unevaluated operand forms. The return value o
by platz 12y ago
Yes, they have the same syntax, but the semantics are different:
"that macro function is called and is passed the unevaluated operand forms. The return value of the macro is then evaluated in its place.
If the operator is not a special form or macro, the call is considered a function call. Both the operator and the operands (if any) are evaluated, from left to right." - http://clojure.org/evaluation http://clojure.org/evaluation
There are many macros and special forms in clojure where you have to understand that the arguments are not evaluated first - and if you try to reason about what happens as if they were eagerly evaluated you get the wrong answer or an error