def add(x: Int)(y: Int) = x + y
val add5 = add(5)_
def add(x: Int, y: Int) = x + y
def add5(n: Int) = add(5, n)
int add(int n1, int n2)
{
return n1 + n2;
}
alias add5 = curry!(add, 5);
curry(f(a, b), a) => (b) => f(a, b);
defmodule Curry do
def curry(fun) do
{_, arity} = :erlang.fun_info(fun, :arity)
curry(fun, arity, [])
end
def curry(fun, 0, arguments) do
apply(fun, Enum.reverse arguments)
end
def curry(fun, arity, arguments) do
fn arg -> curry(fun, arity - 1, [arg | arguments]) end
end
end
type PayFactory func(Company, *Employee, *Employee) Payroll
type CustomPayFactory func(*Employee) Payroll
func CurryPayFactory(pf PayFactory,company Company, boss *Employee) CustomPayFactory {
return func(e *Employee) Payroll {
return pf("Richissim", boss, e)
}
}
addThem :: Num a => a -> a -> a
addThem = (+)
add5 :: Num a => a -> a
add5 = addThem 5
function curry (fn, scope) {
scope = scope || window;
// omit curry function first arguments fn and scope
var args = Array.prototype.slice.call(arguments, 2);
return function() {
var trueArgs = args.concat(Array.prototype.slice.call(arguments, 0));
fn.apply(scope, trueArgs);
};
}
IntBinaryOperator simpleAdd = (a, b) -> a + b;
IntFunction<IntUnaryOperator> curriedAdd = a -> b -> a + b;
System.out.println(simpleAdd.applyAsInt(4, 5));
System.out.println(curriedAdd.apply(4).applyAsInt(5));
function curry2(f)
return function(a)
return function(b)
return f(a,b)
end
end
end
function add(a,b)
return a + b
end
local curryAdd = curry2(add)
local add2 = curryAdd(2)
function curry($f, ...$argsCurried) {
return function(...$args) use($f, $argsCurried) {
$finalArgs = array_merge($argsCurried, $args);
return call_user_func_array($f, $finalArgs);
};
}
function add($n1, $n2) {
return $n1 + $n2;
}
$addFive = curry('add', 5);
echo $addFive(2), PHP_EOL;
echo $addFive(-5), PHP_EOL;
function curry($f, ...$argsCurried) {
return function(...$args) use($f, $argsCurried) {
return $f(...$argsCurried, ...$args);
};
}
function add($n1, $n2) {
return $n1 + $n2;
}
$addFive = curry('add', 5);
echo $addFive(2), PHP_EOL;
echo $addFive(-5), PHP_EOL;
sub curry {
my ($func, $fixed_arg) = @_;
return sub {
$func->($fixed_arg, @_);
}
}
def f(a):
def add(b):
return a+b
return add
print (f(2)(1)
#add_to_two = partial(f, 2)
adder = -> a, b { a + b }
add_two = adder.curry.(2)
add_two.(5) # => 7
fn add(a: u32, b: u32) -> u32 {
a + b
}
let add5 = move |x| add(5, x);
(define add5 (curry + 5))