Thanks for answer my question.
On Saturday, December 26, 2015 at 10:59:51 PM UTC+8, Leif wrote:
>
> Hi, Mian Pao.
>
> When you call the macro te, a is bound to the *symbol* 'print, not the
> *function* print. So, what the ~(a b c) form is doing is calling the
> symbol 'print as a function:
> ('
Hi, Mian Pao.
When you call the macro te, a is bound to the *symbol* 'print, not the
*function* print. So, what the ~(a b c) form is doing is calling the
symbol 'print as a function:
('print 1 '(2 3)) => '(2 3)
This is because symbols and keywords implement the function interface, and
the cal
Hi, Mian Pao.
When you call the macro te, a is bound to the *symbol* 'print, not the
*function* print. So, what the ~(a b c) form is doing is calling the
symbol 'print as a function:
('print 1 '(2 3)) => '(2 3)
This is because symbols and keywords implement the function interface, and
the cal
I just write a macro
```
(defmacro te
[a b & c]
`(print
~(a b c)))
```
and i run
```
(macroexpand '(te print 2 3 4))
;=> (clojure.core/print (3 4))
```
it get `(clojure.core/print (3 4))` not `(clojure.core/print nil)`
iti is mean `(print 2 '(3 4))` return (3 4)?
--
You received thi