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)