ジュリアのメタプログラミング
コード 1
Juliaではメタプログラミングを言語レベルでサポートしている。これは文字列をそのままのコードとして読み込んで実行した結果だ。
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