function iterThunk( iterFcn ) {
	var pargs;
	var nargs;
	var i;
	if ( !isFunction( iterFcn ) ) {
		throw new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', iterFcn ) );
	}
	nargs = arguments.length;
	pargs = [];
	for ( i = 1; i < nargs; i++ ) {
		pargs.push( arguments[ i ] );
	}
	return thunk;

	/**
	* Invokes an iterator function with a provided iterator and previously provided iterator function arguments.
	*
	* @private
	* @param {Iterator} iter - input iterator
	* @throws {TypeError} must provide an iterator
	* @returns {*} iterator function result
	*/
	function thunk( iter ) {
		var args;
		var i;
		if ( !isIteratorLike( iter ) ) {
			throw new TypeError( format( 'invalid argument. Must provide an iterator. Value: `%s`.', iter ) );
		}
		args = [ iter ];
		for ( i = 0; i < nargs; i++ ) {
			args.push( pargs[ i ] );
		}
		return iterFcn.apply( null, args );
	}
}
Returns an iterator "thunk".

@param {Function} iterFcn - iterator function
@param {...*} [args] - function arguments
@throws {TypeError} first argument must be a function
@returns {Function} iterator "thunk"

@example
var array2iterator = require( '@stdlib/array/to-iterator' );
var iterSome = require( '@stdlib/iter/some' );

var it = array2iterator( [ 0, 0, 1, 1, 1 ] );

var thunk = iterThunk( iterSome, 3 );

var bool = thunk( it );
// returns true