emi*_*422 3 macros metaprogramming julia
我正在尝试创建一个宏,它能够(可能递归地)将函数转换为表达式,以便达到在该函数中应用的操作。
作为可视化:
function sampleFunc(x)
println(x)
y = 2x
return 2y* x
end
@macroIcannotImplement sampleFunc(x)
Run Code Online (Sandbox Code Playgroud)
期望输出:
quote
println(x)
y = 2x
return 2y* x
end
Run Code Online (Sandbox Code Playgroud)
Julia 是否支持这样的提取,还是我应该开始寻找其他方式?
是的,使用CodeTracking:
julia> using Revise, CodeTracking
julia> function sampleFunc(x)
println(x)
y = 2x
return 2y* x
end
sampleFunc (generic function with 1 method)
julia> @code_expr sampleFunc(3)
:(function sampleFunc(x)
#= REPL[2]:1 =#
#= REPL[2]:2 =#
println(x)
#= REPL[2]:3 =#
y = 2x
#= REPL[2]:4 =#
return (2y) * x
end)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
31 次 |
| 最近记录: |