|
|
|
|
|
by platz
4220 days 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 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 |
|