logo

ジュリアのメタプログラミング 📂ジュリア

ジュリアのメタプログラミング

コード 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