Friday, 15 May 2015

Why do string macros in Julia use ...? -



Why do string macros in Julia use ...? -

i looking @ source r_str macro in julia, parses r"text" regex("text"). sec argument flags..., passes flags regex, i case insensitive, , on.

i playing myself , got:

julia> macro a_str(p, flags...) print(flags) p end julia> a"abc"iii ("iii",)"abc"

so seems iii passed in first flag. in case, why there ... on flags. possible pass in more 1 element of flags macro?

the reason because macro gets invoked 1 argument when a"xyz" written or 2 arguments when a"xyz"bc written. doing flags... in macro signature, can handle both. if macro expanders generic functions 1 have default value sec argument aren't generic, they're anonymous, , way handle different numbers of arguments anonymous functions varargs.

macros julia-lang julia-macros

No comments:

Post a Comment