logo

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

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

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