Jump to content

Call a function: Difference between revisions

added R
(Scala added)
(added R)
Line 1,291:
## For partial function application see:
## http://rosettacode.org/wiki/Partial_function_application#Python</lang>
 
 
=={{header|R}}==
Translated from Python, when possible.
<lang rsplus>### Calling a function that requires no arguments
no_args <- function() NULL
no_args()
 
 
### Calling a function with a fixed number of arguments
fixed_args <- function(x, y) print(paste("x=", x, ", y=", y, sep=""))
fixed_args(1, 2) # x=1, y=2
fixed_args(y=2, x=1) # y=1, x=2
 
 
### Calling a function with optional arguments
opt_args <- function(x=1) x
opt_args() # x=1
opt_args(3.141) # x=3.141
 
 
### Calling a function with a variable number of arguments
var_args <- function(...) print(list(...))
var_args(1, 2, 3)
var_args(1, c(2,3))
var_args()
 
 
### Calling a function with named arguments
fixed_args(y=2, x=1) # x=1, y=2
 
 
### Using a function in statement context
if (TRUE) no_args()
 
 
### Using a function in first-class context within an expression
print(no_args)
 
 
### Obtaining the return value of a function
return_something <- function() 1
x <- return_something()
x
 
 
### Distinguishing built-in functions and user-defined functions
# Not easily possible. See
# http://cran.r-project.org/doc/manuals/R-ints.html#g_t_002eInternal-vs-_002ePrimitive
# for details.
 
 
### Distinguishing subroutines and functions
# No such distinction.
 
 
### Stating whether arguments are passed by value or by reference
# Pass by value.
 
 
### Is partial application possible and how
# Yes, see http://rosettacode.org/wiki/Partial_function_application#R</lang>
 
 
 
=={{header|Racket}}==
Cookies help us deliver our services. By using our services, you agree to our use of cookies.