PHP函数柯里化代码示例

来源:互联网 发布:java asynchttpclient 编辑:程序博客网 时间:2024/06/04 20:07

代码示例

<?php/** * 示例函数 */function add( $a, $b ){    return $a + $b;}/** * 创建柯里化的函数 */function curry( $fn ){    // 把第2个及以后的参数截出来    $args = func_get_args();    $outerArgs = array_slice( $args, 1 );    // 匿名函数    $retFn = function () use ( $fn, $outerArgs )    {        // 把上面截出来的函数和本次匿名函数传进来的合并        $args = array_merge( $outerArgs, func_get_args());        // 调用        return call_user_func_array( $fn, $args );    };    return $retFn;}$fn = curry( 'add', 5 );var_dump( $fn( 3 )); // = 8$fn2 = curry( 'add', 10 );var_dump( $fn2( 3 )); // = 13


0 0
原创粉丝点击