【发布时间】:2016-09-10 20:02:50
【问题描述】:
我想自动构建许多 Julia 函数(元编程)来包装一个库。
这是我要生成的函数:
function myfunc(a::Array{Float64,1}, b::Array{Float64,1}; x=Int64(1), y=Float64(2))
x + y
end
这里是我想用来生成这样一个函数的函数的参数。
funcname = :my_func
args = (:a, :b)
args_typ = (Array{Float64,1}, Array{Float64,1})
kw_args = (:x, :y)
kw_defval = (1, 2)
kw_typ = (Int64, Float64)
我对 Julia 宏感到不舒服,http://docs.julialang.org/en/release-0.4/manual/metaprogramming/ 对我没有多大帮助。
我也希望能够显示函数(生成)代码。
我的第一个想法(不是很自动化)是
macro GEN_FUNC(funcname)
function $funcname(a, b, x=1, y=2)
return x
end
end
但它提高了
ERROR: syntax: invalid method name "$funcname"
【问题讨论】:
标签: function metaprogramming julia