R/005.varArgs.R

Defines functions appendVarArgs.function appendVarArgs hasVarArgs.function hasVarArgs

Documented in appendVarArgs appendVarArgs.function hasVarArgs hasVarArgs.function

hasVarArgs <- function(...) UseMethod("hasVarArgs")
export(hasVarArgs) <- TRUE

hasVarArgs.function <- function(fcn, ...) {
  if (!is.function(fcn))
    stop("Argument 'fcn' must be a function: ", mode(fcn))

  # Get the current formals
  args <- formals(fcn)

  is.element("...", names(args))
} # hasVarArgs()
S3class(hasVarArgs.function) <- "function"
export(hasVarArgs.function) <- FALSE


appendVarArgs <- function(...) UseMethod("appendVarArgs")
export(appendVarArgs) <- TRUE

appendVarArgs.function <- function(fcn, ...) {
  if (hasVarArgs(fcn))
    return(fcn)

  # Get the current formals
  args <- formals(fcn)
  # Add '...'
  args <- c(args, formals(function(...) {}))
  # Set new formals
  formals(fcn) <- args

  fcn
} # appendVarArgs()
S3class(appendVarArgs.function) <- "function"
export(appendVarArgs.function) <- FALSE

Try the R.methodsS3 package in your browser

Any scripts or data that you put into this service are public.

R.methodsS3 documentation built on June 14, 2022, 1:06 a.m.