curry {curry} | R Documentation |
Curry a function from the start
Description
The curry
function and the %<%
operator performs currying on
a function by partially applying the first argument, returning a function
that accepts all but the first arguments of the former function. If the first
argument is ...
the curried argument will be interpreted as part of
the ellipsis and the ellipsis will be retained in the returned function. It
is thus possible to curry functions comtaining ellipis arguments to infinity
(though not adviced).
Usage
fun %<% arg
curry(fun, arg)
Arguments
fun |
A function to be curried. Can be any function (normal, already curried, primitives). |
arg |
The value that should be applied to the first argument. |
Value
A function with the same arguments as fun
except for the
first, unless the first is ...
in which case it will be retained.
Note
Multiple currying does not result in multiple nested calls, so while the first currying adds a layer around the curried function, potentially adding a very small performance hit, currying multiple times will not add to this effect.
See Also
Other partials: partial
,
tail_curry
Examples
# Equivalent to curry(`+`, 5)
add_5 <- `+` %<% 5
add_5(10)
# ellipsis are retained when currying
bind_5 <- cbind %<% 5
bind_5(1:10)