#macros #julia #mapping
Вопрос:
macro superM(arg, argc) map(foo,argc) end @superM test {1,2}
Я просто хочу передать аргумент argc
функции map, но я получаю эту ошибку: no method matching iterate(::Expr)
Ответ №1:
это argc
выражение, в скобках которого head
{}
:
juliagt; dump(:({1, 2})) Expr head: Symbol braces args: Array{Any}((2,)) 1: Int64 1 2: Int64 2
итак, что вам действительно нужно, так это args
поле выражения {1,2}
juliagt; macro superM(arg, argc) map(identity,argc.args) end @superM (macro with 1 method) juliagt; @superM test {1,2} 2-element Vector{Int64}: 1 2