part

This micro library encourages functional programming by making native methods available as partially applied functions.

npm install part
22 downloads in the last week
24 downloads in the last month

_part_

This micro library encourages functional programming by making native methods available as partially applied functions.

//typical receiver-method-arguments pattern
[1,2,3].map( function (n) { return n + 1; } ); // [2,3,4]

The "left-part" functions prepend the method name with an underscore and expect the receiver as the first argument in the first invocation.

_map( [1,2,3] )( function (n) { return n + 1; } ); // [2,3,4]

The "right-part" functions suffix the method name with an underscore and expect the receiver as the first argument in the function returned by the first invocation.

map_( function (n) { return n + 1; } )( [1,2,3] ); // [2,3,4]

See the docs.

Try the live demo.

Getting Started

See the following examples of how to include _part_.

Custom namespace;

// NodeJS example
var _part_ = require( "part" );
var util = {};
_part_._borrow( util )( Array.prototype, "reduce" );
function add( a, b ) { return +a + +b; }
util.sum = util.reduce_( add );
module.exports = util;
<!-- Browser example -->
<script src="build/src/part.min.js">
<script>
(function (global, util) {
  function add( a, b ) { return +a + +b; }
  _part_._borrow( util )( Array.prototype, "reduce" );
  util.sum = util.reduce_( add );
  global.util = util;
}(this, {}));
</script>

Extending the _part_ namespace;

// NodeJS example
var _part_ = require( "part" );
_part_._borrow( util )( Array.prototype, "reduce" );
function add( a, b ) { return +a + +b; }
var sum = util.reduce_( add );
<!-- Browser example -->
<script src="build/src/part.min.js">
<script>
function add( a, b ) { return +a + +b; }
_part_.borrow( Array.prototype, "reduce" );
var sum = _part_.reduce_( add );
</script>

Non-namespaced utilities

// NodeJS example
var _part_ = require("part");
var reduce_ = _part_.create_(Array.prototype.reduce);
function add( a, b ) { return +a + +b; }
var sum = reduce_( add );
<!-- Browser example -->
<script src="build/src/part.min.js">
<script>
function add( a, b ) { return +a + +b; }
_part_._borrow( this )( Array.prototype, "reduce" );
var sum = reduce_( add );
</script>

Updates

  • 2013-12-11 - Added papply to the _part_ namespace.
npm loves you