To create a type at runtime, there are a few of methods - each delivering an equivalent result:
*julia> quote* * type Test1* * a1::Int32* * a2::Int32* * a3::Int32* * end* * end* quote # none, line 2: $(Expr(:type, true, :Test1, quote # line 3: a1::Int32 # line 4: a2::Int32 # line 5: a3::Int32 end)) end *julia> parse("""quote* * type Test2* * a1::Int32* * a2::Int32* * a3::Int32* * end* * end""")* quote # none, line 2: $(Expr(:type, true, :Test2, quote # line 3: a1::Int32 # line 4: a2::Int32 # line 5: a3::Int32 end)) end *julia> Expr(:type, false, symbol("Test3"), Expr(:block, [Expr(:(::), symbol("a$x"), symbol("Int32")) for x = 1:3]...))* :($(Expr(:type, false, :Test3, quote a1::Int32 a2::Int32 a3::Int32 end))) *Question:* I'm interested if there is a better quote method, something that avoids playing with string parsing or explicit Expr()'s with some ninja $() magic like pseudo-code: *quote* * type Test4* * $for x = 1:3* * a$x::Int32* * $end* * end* *end* Anything similar actually possible?