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 );
}