ジュリアのメタプログラミング
コード 1
ジュリアではメタプログラミングを言語レベルでサポートしている。以下は文字列をコードそのものとして読み込み、実行した結果だ。
julia> text = "f(x) = 2x + 1; f(2)"
"f(x) = 2x + 1; f(2)"
julia> code = Meta.parse(text)
:($(Expr(:toplevel, :(f(x) = begin
#= none:1 =#
2x + 1
end), :(f(2)))))
julia> eval(code)
5
Meta.Parse()
: この関数を介して入力された文字列をエクスプレッションexpressionに変えて返す。eval()
: エクスプレッションを評価evaluateする。上記の例コードでは、$f(2)$が実際に評価され、関数の値である$5$が得られた。
環境
- OS: Windows
- julia: v1.5.0