function thunk( fcn ) {
	var args;
	var i;
	if ( !isFunction( fcn ) ) {
		throw new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', fcn ) );
	}
	args = [];
	for ( i = 1; i < arguments.length; i++ ) {
		args.push( arguments[ i ] );
	}
	// NOTE: we return an anonymous function to satisfy the definition of a thunk (i.e., an anonymous function which has no parameters of its own and wraps another function)...
	return function () { // eslint-disable-line no-restricted-syntax, func-names
		return fcn.apply( null, args );
	};
}
Returns a thunk.

@param {Function} fcn - function to convert to a thunk
@param {...*} [args] - function arguments
@throws {TypeError} first argument must be a function
@returns {Function} thunk

@example
var add = require( '@stdlib/number/float64/base/add' );

var f = thunk( add, 2, 3 );
// returns <Function>

// ...

// Evaluate the thunk:
var v = f();
// returns 5