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.


Chris

On Sat, Oct 19, 2019 at 8:03 AM ru <soro...@oogis.ru> 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 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/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/CADbpEJsgb2Z%3D9gVE%3DUcrfRiQTtHoqXDDein_tg9J%2B9EXcpekNw%40mail.gmail.com.

Reply via email to