Le mercredi 08 juillet 2015 à 13:20 -0700, Brandon Taylor a écrit :
> All functions.
Well, I don't know of any language which doesn't have scoping rules...

Anyway, I didn't say scoping rules are necessarily confusing, I was
only referring to R formulas. But according to the examples you posted,
your question appears to be different.


Regards

> On Wednesday, July 8, 2015 at 4:18:09 PM UTC-4, Milan Bouchet-Valat 
> wrote:
> > Le mercredi 08 juillet 2015 à 12:57 -0700, Brandon Taylor a écrit : 
> > 
> > > If scoping rules are too complicated and cause confusion, why are 
> > 
> > > they built into the base implementation of function? 
> > What do you mean? Which function? 
> > 
> > > On Wednesday, July 8, 2015 at 3:48:52 PM UTC-4, Milan Bouchet
> > -Valat 
> > > wrote: 
> > > > 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