I wrote a short macro for Julia 0.4 to generate fixed-length tuples using 
comprehension-like syntax.  This is useful in code where tuples are used to 
represent fixed-length arrays. Here is an example:

    v = @tuplegen [(i==2)? i * 6 : i for i = 1 : 3]

macro-expands to
 
      v = (1, 2*6, 3)

which would yield (1,12,3).  You could get the same result via the standard 
code:
     v = tuple( [ <comprehension goes here> ] ...)
but this latter code would create a heap-allocated array as a temporary 
variable and hence would presumably be less efficient.

The metaprogramming to make this work is similar to the metaprogramming for 
my unroll macro, so I put them in the same package.  You can get @tuplegen 
(and @unroll) via:

  Pkg.clone("https://github.com/StephenVavasis/Unroll.jl";)

Reply via email to