有没有办法在Julia中将函数转换为表达式?

我正在尝试创建一个宏,它能够(可能递归地)将函数转换为表达式,以便达到在该函数中应用的操作。

作为可视化:

function sampleFunc(x)
     println(x)
     y = 2x
     return 2y* x
end

@macroIcannotImplement sampleFunc(x)

期望输出:

quote
     println(x)
     y = 2x
     return 2y* x    
end

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)


以上是有没有办法在Julia中将函数转换为表达式?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>