OK, thanks!

Sometimes I have a really hard time trusting that I understand what I read 
in these contexts, so its nice to have a friendly email list to help me 
learn =)

// T

On Thursday, August 28, 2014 4:42:16 PM UTC+2, Tim Holy wrote:
>
> Right, begin...end do not by themselves introduce new scope. So you can 
> just 
> ignore them. 
>
> --Tim 
>
>
> On Thursday, August 28, 2014 03:43:13 AM Tomas Lycken wrote: 
> > I have a function, littered with macros, which when I call macroexpand 
> on 
> > it returns the following Expr: 
> > 
> > quote # /home/tlycken/.julia/v0.3/Interpolations/src/linear.jl, line 12: 
> >     begin 
> >         begin 
> >             ix_1 = ifloor(x_1) 
> >             fx_1 = x_1 - convert(typeof(x_1),ix_1) 
> >         end 
> >     end # line 13: 
> >     begin 
> >         ixp_1 = ix_1 + 1 
> >     end # line 14: 
> >     begin 
> >         $(Expr(:boundscheck, false)) 
> >         begin 
> >             ret = (one(fx_1) - fx_1) * itp.coefs[ix_1] + fx_1 * 
> > itp.coefs[ixp_1] $(Expr(:boundscheck, :(Base.pop))) 
> >         end 
> >     end # line 15: 
> >     ret 
> > end 
> > 
> > Now, for my own sanity when I try to reason about this code, it would be 
> > much easier if I could be sure that the above Expr is equivalent with 
> this 
> > one (except for the removal of an @inbounds block): 
> > 
> > quote # /home/tlycken/.julia/v0.3/Interpolations/src/linear.jl, line 12: 
> >     ix_1 = ifloor(x_1) 
> >     fx_1 = x_1 - convert(typeof(x_1),ix_1) 
> >     ixp_1 = ix_1 + 1 
> >     ret = (one(fx_1) - fx_1) * itp.coefs[ix_1] + fx_1 * itp.coefs[ixp_1] 
> # 
> > this line previously had @inbounds as well ret 
> > end 
> > 
> > I *think* that the man page on scoping 
> > <http://julia.readthedocs.org/en/latest/manual/variables-and-scoping/>, 
> and 
> > specifically the line *“Notably missing from this list are begin blocks 
> > <
> http://julia.readthedocs.org/en/latest/manual/control-flow/#man-compound-ex 
> > pressions>, which do not introduce new scope blocks”*, indicate that I’m 
> > right, but I’m not certain. Could someone confirm this for me? Since I’m 
> > not assigning the results of the expressions to anything, the 
> implications 
> > of begin ... end in this context is still a little shady to me. 
> > 
> > // T 
> > ​ 
>
>

Reply via email to