# Create a function programmatically by creating its constituents: # an argument list, a function body of expressions, and an enclosing environment args <- alist(x=,y=) exps <- expression(z <- x^2 + y^2, z <- sqrt(z), return(z)) body <- as.call(c(as.name("{"), exps)) f <- as.function(x = c(args,body), envir = parent.frame()) f(x=1,y=1)