请问怎么写出一个show宏

在clojure这个LISP方言中,可以这样写一个show宏

(defmacro show [x]
`(print '~x "=" ~x))

这个宏返回了一个s-表达式,`的意思是宏模板,这个先不要理
这里~x的意思是解引述,类似于插值$x,'~x是防止对x求值,将x作为符号变量处理,类似esc
请问这个宏在julia中应该怎么写

Meta.quot

macro myshow(x)
return :(println(“?=”,$x))
end

a=5
b=10
@myshow(a)
@myshow(b)

#------
题主的意思是 结果为 a=5; b=10
也就是对于传递参数,不仅要提取变量值,还要提取变量名自身。

目前,可以用hash或dict;要么从堆栈里“揪”出来(这太麻烦)。

这个问题提到好,看看还有什么好方法?

答案:
#----------------
macro myshow(x)
:(println($(string(x))," = ",$x))
end
#----------------

a=(5,6,7)
b=10
x=25
y=33.3
z=“Macro”

@myshow(a)
@myshow(b)
@myshow(x)
@myshow(y)
@myshow(z)

不过在for loop里面情形又不一样了,因为循环变量,不是定义变量本身,所以,写法不同,更简单一点。