Hadley Wickham <had...@rice.edu> writes: > On Tuesday, August 17, 2010, Vitaly S. <spinuvit.l...@gmail.com> wrote: >> Duncan Murdoch <murdoch.dun...@gmail.com> writes: >> >>> Vitaly S. wrote: >>>> Martin Morgan <mtmor...@fhcrc.org> writes: >>>> >>>>>> So, can I be sure that for such functions parent.frame(2) will always >>>>>> work? >>>>>> What are the additional rules? >>>>>> >>>>> callNextMethod() will cause additional problems; the idea that you'll >>>>> grab things from somewhere other than function arguments doesn't seem >>>>> like a robust design, even if it's used in some important parts of R. >>>>> >>>>> Martin >>>>> >>>>> >>>> >>>> That make it difficult to handle unevaluated expressions in methods. A >>>> solution >>>> would be to explicitly require the users to use quote() or expression(), >>>> and >>>> then to use the "expression" in the signature. Slightly unpleasant, though. >>>> >>>> >>> >>> You could use formulas for that. If you pass in >>> >>> formula = ~ x + y*z >>> >>> then environment(formula) will be the right evaluation environment, and >>> formula[[2]] will be the unevaluated x + >>> y*z. >>> >>> Duncan Murdoch >> >> Thank you Duncan, I didn't know that. >> >> For programmatic use though, formula interface is slightly inconvenient. A >> specialized function and class would be desirable. With the advent of more >> and >> more complex S4 classes, unevaluated expressions in methods calls will >> became a >> necessity, that's my feeling. > > I probably should move the quoting related out of plyr into it's own > package to facilitate this type of reuse. I think the current > structure is quite general.
That would be neat. An S4 class "quote" which would store the parent.frame as a slot would be great! > > Hadley ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel