суббота, 19 октября 2019 г., 17:15:23 UTC+3 пользователь Chris Nuernberger 
написал:
>
> Hey Ru,
>
> Renaming x to anything will result in roughly the same error in your 
> function.  The problem is that your instance macro needs to know the 
> classname at compile time.  As x is a runtime variable, the compiler cannot 
> see the literal value of x at compile time.  Put another way, in your test 
> function, with no other changes, you need a switch statement that tests if 
> x is a known type and then calls the macro with the 
> now-known-at-compile-time literal classname.
>
>
> An instance function that found the constructor of x via reflection and 
> then called that is what you want here.
>
> May be this reflection should do "new" macro? 

>
> Chris
>
> On Sat, Oct 19, 2019 at 8:03 AM ru <sor...@oogis.ru <javascript:>> wrote:
>
>> Ok,  Matching Socks.
>>
>> On what name should I replace the variable name "x" in the function 
>> definition so that the macro like it?
>>
>> суббота, 19 октября 2019 г., 14:09:01 UTC+3 пользователь Matching Socks 
>> написал:
>>>
>>> The macro is a code generator, with which the compiler computes the 
>>> actual definition of the "test" function.  What's there is x, and the macro 
>>> does not like x.  The REPL definition of JLabel worked because JLabel was 
>>> the literal argument.  See https://clojure.org/reference/macros, which 
>>> is subtle about this point, or the excellent book "Mastering Clojure 
>>> Macros". 
>>>
>> -- 
>> You received this message because you are subscribed to the Google
>> Groups "Clojure" group.
>> To post to this group, send email to clo...@googlegroups.com 
>> <javascript:>
>> Note that posts from new members are moderated - please be patient with 
>> your first post.
>> To unsubscribe from this group, send email to
>> clo...@googlegroups.com <javascript:>
>> For more options, visit this group at
>> http://groups.google.com/group/clojure?hl=en
>> --- 
>> You received this message because you are subscribed to the Google Groups 
>> "Clojure" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to clo...@googlegroups.com <javascript:>.
>> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/clojure/4bdd8dee-0b87-42a1-8d3a-4a2cf60f3aff%40googlegroups.com
>>  
>> <https://groups.google.com/d/msgid/clojure/4bdd8dee-0b87-42a1-8d3a-4a2cf60f3aff%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>>
>

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/clojure/fdee132a-474d-40b8-9960-7d4e2b150f66%40googlegroups.com.

Reply via email to