小编Hab*_*hPI的帖子

如何定义定义宏的julia宏?

我原以为这会起作用:

macro meta_meta(x,y)
  :(macro $x(arg) :($($y) + $arg) end)
end
Run Code Online (Sandbox Code Playgroud)

预期的行为是调用@meta_meta(f,2)应该相当于 macro f(arg) :(2 + $arg) end

换一种说法:

julia> @meta_meta(f,2)
julia> @f(3)
5
Run Code Online (Sandbox Code Playgroud)

相反,我得到:

ERROR: syntax: invalid macro definition
Run Code Online (Sandbox Code Playgroud)

对于如何继续,我有点不知所措.我看到这个宏的表达式树与我手动生成@f并检查其表达式树的表达式不同,我尝试了几次@meta_meta的迭代,但是我无法弄清楚如何将我的定义更改为让它工作.

macros julia

5
推荐指数
1
解决办法
348
查看次数

标签 统计

julia ×1

macros ×1