public static function add(callable ...$args)
{
$sum = function ($x, ...$args) {
$function = 0;
foreach ($args as $arg) {
$function += $arg($x);
}
return $function;
};
return function ($x) use($args, $sum) {
return call_user_func_array($sum, array_merge([$x], $args));
};
}