0
function sq(x)
x^2
end
function sq2(x)
(x+1)^2
end
function fun(x)
sq(x)
end
我想與sq2
調用來替換sq
調用,這樣重新定義fun
通用功能。 我在下面的嘗試改變了調用,但無法重新定義函數。任何幫助將不勝感激。
change(:fun, (Int,))
function analyze_expr(exp::Expr)
for i = 1:length(exp.args)
arg = exp.args[i]
if(typeof(arg) == Expr)
analyze_expr(arg)
elseif(arg==symbol("sq"))
exp.args[i] = symbol("sq2")
end
end
末
function change(sym::Symbol, params)
func = eval(sym)
func_code = code_lowered(func, params)
func_body = func_code[1].args[3]
analyze_expr(func_body)
println("Printing function body:",func_body)
end
謝謝約翰的指針。 – ekobir