Monday, July 20, 2009

curry in php 5.3

Here is curry in php 5.3

function curry(){
$args = func_get_args();
$fn = array_shift($args);
return function() use(&$fn, &$args) {
$nargs = func_get_args();
foreach($nargs as $narg) $args[] = $narg;
return call_user_func_array($fn, $args);
};
}

$add20 = curry(function($a, $b){return $a + $b;}, 20);
echo $add20(5); #25

No comments: