[Rd] External special functions (SPECIALSXP)

2011-05-25 Thread Peter Danenberg
Is it possible to define an external special function (SPECIALSXP)? I'm trying to do some language-level work, and don't want my arguments evaluated before they hit C. It looks like the only way to define a SPECIALSXP is by using XX0 in the `eval' field of R_FunTab; is there any way to make this a

Re: [Rd] External special functions (SPECIALSXP)

2011-05-25 Thread Duncan Murdoch
On 25/05/2011 1:10 PM, Peter Danenberg wrote: Is it possible to define an external special function (SPECIALSXP)? I'm trying to do some language-level work, and don't want my arguments evaluated before they hit C. It looks like the only way to define a SPECIALSXP is by using XX0 in the `eval' fi

Re: [Rd] External special functions (SPECIALSXP)

2011-05-25 Thread Peter Danenberg
> However, if you don't want to evaluate the arguments, just pass > substitute(arg) to your function instead of arg. Thanks, Duncan; the problem is, I'm trying to substitute on `...' and I don't think I can access `...' without inadvertently evaluating it. I'm trying to write a debugging function

Re: [Rd] External special functions (SPECIALSXP)

2011-05-25 Thread William Dunlap
> f <- function(...) { + dotArgList <- substitute(list(...)) + dotArgList + } > f(cat("foo\n"), stop("Oops"), warning("Hmm")) list(cat("foo\n"), stop("Oops"), warning("Hmm")) > # i.e., no argument was evaluated Bill Dunlap Spotfire, TIBCO Software wdunlap tibco.com > -Original Messa

Re: [Rd] External special functions (SPECIALSXP)

2011-05-25 Thread William Dunlap
Bill Dunlap Spotfire, TIBCO Software wdunlap tibco.com > -Original Message- > From: William Dunlap > Sent: Wednesday, May 25, 2011 11:20 AM > To: 'Peter Danenberg' > Cc: r-devel@r-project.org > Subject: RE: [Rd] External special functions (SPECIALSXP) > > > f <- function(...) { > +

Re: [Rd] External special functions (SPECIALSXP)

2011-05-25 Thread Duncan Murdoch
On 25/05/2011 2:05 PM, Peter Danenberg wrote: > However, if you don't want to evaluate the arguments, just pass > substitute(arg) to your function instead of arg. Thanks, Duncan; the problem is, I'm trying to substitute on `...' and I don't think I can access `...' without inadvertently evalua

Re: [Rd] External special functions (SPECIALSXP)

2011-05-25 Thread Peter Danenberg
Quoth William Dunlap on Setting Orange, the 72nd of Discord: > > f <- function(...) { > + dotArgList <- substitute(list(...)) > + dotArgList > + } > > f(cat("foo\n"), stop("Oops"), warning("Hmm")) > list(cat("foo\n"), stop("Oops"), warning("Hmm")) > > # i.e., no argument was evaluated Than

Re: [Rd] Curry: proposed new functional programming, er, function.

2011-05-25 Thread Peter Danenberg
Sharpie wrote: > Currently, the only Curry implementation I know of is in the roxygen > package which is kind of a weird dependency to install just for this > one function. I end up using Curry so much outside of Roxygen that I spun it off into the `functional' package: https://r-forge.r-projec