func-utils

0.0.1 • Public • Published

func-utils

Utility functions for functional programming in Node.js

Functions

f.arg ( n )

Returns the nth argument on each call.

var second = f.arg(2);
 
second('a', 'b', 'c');
// "b"
f.first / f.identity ( void )

Aliases for f.arg(1), always returns the first argument on each call.

f.nth ( n[, offset ])

Returns true on each nth call to the function, and false on every other call.

var evenOnly = f.nth(2);
 
evenOnly();  // false
evenOnly();  // true
evenOnly();  // false
evenOnly();  // true
 
var oddOnly = f.nth(2, 1);
 
oddOnly(); // true
oddOnly(); // false
oddOnly(); // true
f.odd / f.even ( void )

Aliases for f.nth(2) and f.nth(2, 1).

var nums = [1, 2, 3, 4, 5, 6, 7];
 
nums.filter(f.odd());
// [1, 3, 5, 7]
 
nums.filter(f.even());
// [2, 4, 6]
f.iota ([ start[, skip ]])

Returns an increasing value with each call.

var iota = f.iota();
 
iota(); // 1
iota(); // 2
iota(); // 3
 
iota = f.iota(1, 2);
 
iota(); // 1
iota(); // 3
iota(); // 5
f.not ( func )

Returns a new function that calls through to the given function, but returns a negated return value.

var alwaysTrue = function() {
    return true;
};
 
var alwaysFalse = f.not(alwaysTrue);
 
alwaysTrue(); // true
alwaysFalse(); // false
f.pick ( prop )

Selects a specific named property from objects.

var people = [
    {name: 'bob', gender: 'male', age: 23},
    {name: 'sarah', gender: 'female', age: 19}
];
 
var names = people.map(f.pick('name'));
// [ "bob", "sarah" ]
f.filterMap ( filter, map )

Filter and map in one iteration using a reduce.

var people = [
    {name: 'bob', gender: 'male', age: 23},
    {name: 'sarah', gender: 'female', age: 19},
    {name: 'sally', gender: 'female', age: 25}
];
 
var girlsOnly = function(person) {
    return person.gender === 'female';
};
 
var getName = function(person) {
    return person.name;
};
 
var girlsNames = people.reduce(f.filterMap(girlsOnly, getName));
// [ "sarah", "sally" ]
f.where ( prop, value )

Return true for objects where the object's property prop matches the given value.

var people = [
    {name: 'bob', gender: 'male', age: 23},
    {name: 'sarah', gender: 'female', age: 19},
    {name: 'sally', gender: 'female', age: 25}
];
 
var girls = people.filter(f.where('gender', 'female'));

Readme

Keywords

Package Sidebar

Install

npm i func-utils

Weekly Downloads

1

Version

0.0.1

License

MIT

Last publish

Collaborators

  • k