Re: Construct a function with argments specified by an R expression

Rolf Turner <[email protected]>
Newsgroups gmane.comp.lang.r.general
Message-ID <20251025161703.200476d4@new-hp>
On Fri, 24 Oct 2025 22:31:53 -0400
Iris Simmons <[email protected]> wrote:

> I would start by making a list of the desired length, where each
> element is the missing argument:
> 
> f <- rep(list(quote(expr = )), 2 + length(argnms))
> 
> then add names to the list:
> 
> names(f) <- c("x", "y", argnms)
> 
> and then use formals<-
> 
> formals(foo) <- f

Wow! That was fast!  And it seems to do exactly what I want.

What I was missing, I guess, was the quote(expr = ) structure.  I have
never really understood quote(), nor expr() either.  I'll just treat it
as a black box for now.

> Although, I would ask if you're certain that this is actually what
> you want to do. It's usually a bad idea to have variable names that
> you don't know. I'd to think it'd be better to have the default
> argument:
> 
> a = list()
> 
> and supply a list of `a` values instead of several `a` arguments.

Yes I understand that that would be the "sensible" approach but it
doesn't work in the context with which I am confronted.

I have more work to do before I get the approach that I've envisaged up
and running.

I may inflict more questions upon you later.  (No good deed goes
unpunished! 🙂️)


cheers,

Rolf

-- 
Honorary Research Fellow
Department of Statistics
University of Auckland
Stats. Dep't. (secretaries) phone:
         +64-9-373-7599 ext. 89622
Home phone: +64-9-480-4619
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.