【发布时间】:2017-05-15 18:18:50
【问题描述】:
我原以为这会起作用:
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 的几次迭代,但我不知道如何将我的定义更改为让它工作。
【问题讨论】:
-
以此为例:discourse.julialang.org/t/def-macro-generator-broken-on-master/…。你可能需要逃避一些事情。
-
感谢指点!这应该够了吧。当我有机会弄清楚时,我会尝试一下。