UNPKG

crocks

Version:

A collection of well known Algebraic Datatypes for your utter enjoyment.

25 lines (18 loc) 596 B
/** @license ISC License (c) copyright 2017 original and current authors */ /** @author Ian Hofmann-Hicks (evil) */ var curry = require('../core/curry') var isFunction = require('../core/isFunction') // partial : ((* -> c), *) -> * -> c function partial() { var args = [], len = arguments.length; while ( len-- ) args[ len ] = arguments[ len ]; var fn = args[0] var xs = args.slice(1) if(!isFunction(fn)) { throw new TypeError('partial: Function required for first argument') } return curry( Function.bind.apply(fn, [ null ].concat(xs)) ) } module.exports = partial