This might fall under:
https://github.com/JuliaLang/julia/issues/2625

On Thursday, 11 February 2016 02:54:42 UTC, Andy Ferris wrote:
>
> OK thanks Tim!
>
> Is there some way/plan to fix this in the future, to make it more 
> convenient?
>
> Andy
>
> On Wednesday, February 10, 2016 at 10:27:38 PM UTC+10, Tim Holy wrote:
>>
>> Slightly modifying an example from the docs: 
>>
>> julia> function mysub2ind_gen(N) 
>>            ex = :(I[$N] - 1) 
>>            for i = N-1:-1:1 
>>                ex = :(I[$i] - 1 + dims[$i]*$ex) 
>>            end 
>>            return :($ex + 1) 
>>        end 
>> mysub2ind_gen (generic function with 1 method) 
>>
>> julia> @generated function mysub2ind{N}(dims::NTuple{N}, I::Integer...) 
>>            length(I) == N || error("wrong number of indexes") 
>>            mysub2ind_gen(N) 
>>        end 
>> mysub2ind (generic function with 1 method) 
>>
>> julia> mysub2ind_gen(3) 
>> :(((I[1] - 1) + dims[1] * ((I[2] - 1) + dims[2] * (I[3] - 1))) + 1) 
>>
>> julia> mysub2ind((5,5,5), 1, 2, 3) 
>> 56 
>>
>> julia> sub2ind((5,5,5), 1, 2, 3) 
>> 56 
>>
>>
>> On Wednesday, February 10, 2016 03:31:15 AM Jeffrey Sarnoff wrote: 
>> > Tim -- would you repeat that with some simple content illustrative of a 
>> > useful use for generation --- thx 
>> > 
>> > On Wednesday, February 10, 2016 at 5:27:12 AM UTC-5, Tim Holy wrote: 
>> > > On Tuesday, February 09, 2016 08:52:22 PM Andy Ferris wrote: 
>> > > > What's the best way to find the code generated by a @generated 
>> function? 
>> > > 
>> > > This isn't easy unless you (or the author) provides a function to do 
>> so: 
>> > >     @generated function foo(x, y) 
>> > >     
>> > >         foo_generator(x, y) 
>> > >     
>> > >     end 
>> > >     
>> > >     function foo_generator{Tx,Ty}(::Type{Tx}, ::Type{Ty}) 
>> > >     
>> > >         # generate and return the expression for the function body 
>> > >     
>> > >     end 
>> > > 
>> > > Then you can call `foo_generator(typeof(x), typeof(y))` to see the 
>> > > returned 
>> > > code. 
>> > > 
>> > > Best, 
>> > > --Tim 
>>
>>

Reply via email to