ライブラリをラップするために自動的に多くのジュリア関数(メタプログラミング)を構築したいと思います。ここでargapとキーワードargsでジュリア関数をメタプログラミングする
は私が生成したい機能です。ここ
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)
私はジュリアマクロと快適に感じることはありませんし、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"
自動的に引数を生成する方法は? –
更新された回答を見てください。 –
私はまだタプルから 'f_parameters'と' f_call'をビルドするという問題に直面しています。どんな助けも素晴らしいでしょう。 –