Q:

How do I get the names of the arguments passed to ... in a function?

Possible Duplicate:
using substitute to get argument name with 

Note that this is -different- from getting the vectors themselves with list(...) or something of that form. What I'd like to be able to do is simply 'echo' all arguments passed into ..., before any parsing is done.
Eg: I want a function that might act simply like:
f(apple, banana, car)
## --> returns c("apple", "banana", "car"), 
## ie, skips looking for the objects apple, banana, car

The closest I've gotten is
f <- function(...) {
  return( deparse( substitute( ... ) ) )
}

but this only returns the first argument 'caught' by the .... Thoughts?

A:

f <- 
  function(...){
     match.call(expand.dots = FALSE)$`...`  
  }

Some explnation from ?match.call:
 1. match.call returns a call in which all of the specified arguments are specified by their full names .
 2. Here it is used to pass most of the call to another function, often model.frame. 
    Here the common idiom is that expand.dots = FALSE

Here some tests:   
f(2)        # call of a static argument  
[[1]]
[1] 2

> f(x=2)  # call of setted argument
$x
[1] 2

> f(x=y)  # call of symbolic argument
$x
y

