Programming

(Julia) 매크로

steloflute 2024. 1. 26. 22:11

Julia에서는 Lisp의 매크로와 비슷하게 매크로를 사용할 수 있다.

 

Metaprogramming · The Julia Language

 

:()로 quote하고, $로 unquote한다.

 

 

 

예제:

 

julia> :($1+1)
:(1 + 1)

julia> :($(1+1))
2

julia> macro aif(a,b,c) :(if $a; $b else $c end) end
@aif (macro with 1 method)

julia> @aif 1 2 3
ERROR: TypeError: non-boolean (Int64) used in boolean context
Stacktrace:
 [1] top-level scope
   @ REPL[6]:1

julia> @macroexpand @aif 1 2 3
:(if 1
      #= REPL[5]:1 =#
      2
  else
      #= REPL[5]:1 =#
      3
  end)