我原以为这样会起作用:
macro meta_meta(x,y)
:(macro $x(arg) :($($y) + $arg) end)
end
预期的行为是调用
@meta_meta(f,2)
应该等同于macro f(arg) :(2 + $arg) end
换句话说:julia> @meta_meta(f,2)
julia> @f(3)
5
相反我得到:
ERROR: syntax: invalid macro definition
我有些不知道该如何继续。我发现这个宏的表达式树与手动生成@f并检查其表达式树时得到的表达式树不同,我尝试了几次@meta_meta,但我无法弄清楚如何改变我的定义以使其正常工作。