papply

    Partially apply function arguments.

    Usage

    var papply = require( '@stdlib/utils/papply' );
    

    papply( fcn[, ...args] )

    Partially applies function arguments.

    function add( x, y ) {
        return x + y;
    }
    
    var add2 = papply( add, 2 );
    
    var sum = add2( 3 );
    // returns 5
    
    sum = add2( 7 );
    // returns 9
    

    Notes

    • The implementation does not set the length of the returned function. Accordingly, the returned function length is always 0.
    • The evaluation context is always null.

    Examples

    var randu = require( '@stdlib/random/base/randu' );
    var floor = require( '@stdlib/math/base/special/floor' );
    var papply = require( '@stdlib/utils/papply' );
    
    var fcn;
    var w;
    var t;
    var s;
    var v;
    var i;
    
    function add( x, y, z, w, t, s ) {
        return x + y + z + w + t + s;
    }
    
    fcn = papply( add, 5, 4, 3 );
    
    for ( i = 0; i < 100; i++ ) {
        w = floor( randu() * 5 );
        t = floor( randu() * 10 );
        s = floor( randu() * 15 );
        v = fcn( w, t, s );
        console.log( '5+4+3+%d+%d+%d = %d', w, t, s, v );
    }