Le mercredi 08 juillet 2015 à 12:34 -0700, Brandon Taylor a écrit :
> I was aware of those packages (though I hadn't read the discussions 
> referenced). Macros are great but they are incredibly difficult to 
> reason with concerning issues of scope (at least for me). Deifying 
> environments could solve all of these issues (and so much more) in 
> one fell swoop.
On the contrary, I think well-designed macros can be much easier to
think about than environments in R. If the macro takes a DataFrame
object and an expression, there's no ambiguity about what the scope is.
This is even better if variables that should be found in the data frame
are passed as symbols, like :var, while standard variables are
specified as usual.

On the other hand, I find R formulas too flexible and complex to reason
about. You never know whether an object will be found in the formula's
environment, in one of the parent environments of the function/package
you called, in your function, or in the global environment.


Regards

> On Wednesday, July 8, 2015 at 3:20:00 PM UTC-4, David Gold wrote:
> > Some of these issues have been thought about fairly extensively by 
> > the stats community in particular, precisely on account of the use 
> > cases you cite:
> > 
> > https://github.com/JuliaStats/DataFrames.jl/pull/472
> > https://github.com/JuliaStats/DataFrames.jl/issues/504
> > 
> > I think that the matter is still very much an open question. I have 
> > no sense that anything is going to be added to Base Julia itself. 
> > Currently, the best way (that I know of, anyway) to achieve the 
> > delayed evaluation effect is via the use of macros. See for 
> > instance:
> > 
> > https://github.com/JuliaStats/DataFramesMeta.jl
> > https://github.com/one-more-minute/Lazy.jl
> > 
> > I'm hope somebody else will be able to pop in an give a more 
> > thorough answer, but the above may at least be a place to start.
> > 
> > On Wednesday, July 8, 2015 at 2:03:45 PM UTC-4, Brandon Taylor 
> > wrote:
> > > Hadley Wickham's lazyeval package in R is pretty cool in that you 
> > > can attach an environment to an expression, pass it in and out of 
> > > functions with various modifications, and then evaluate the 
> > > expression within the original environment (or any other 
> > > environment that you choose). R in general has the functions like 
> > > list2env and list(environment()) that allow one to convert an 
> > > environment into a list and back again (list being the R 
> > > equivalent of a Dict). Are there any plans to add these kind of 
> > > features to Julia?
> > > 

Reply via email to