Re: is it function print has bug?

2015-12-28 Thread Mian Pao
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: > ('

Re: is it function print has bug?

2015-12-26 Thread Leif
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

Re: is it function print has bug?

2015-12-26 Thread Leif
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

is it function print has bug?

2015-12-24 Thread Mian Pao
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