Formi
Functional Programming API.
###Status
API Docs
Formi exposes the Formi
function.
##Formi(function, args...)
Example
var not = function(val) {
return !val;
};
var or = function() {
return _.some(arguments);
};
Formi(not, true)
Formi(or, false, false)
Formi(or, false, true, false)
##Formi.chain(args...)
Creates a chain for transforming data.
Example
var sum = function() {
return _.reduce(arguments, function(total, num) {
return total + num;
}, 0)
}
var even = function() {
return _.filter(arguments, function(val) {
return val % 2 === 0;
});
}
Formi.chain(1, 2, 3, 4)
.pipe(even)
.pipe(sum)
.value();
###Formi.chain().pipe(func)
Define function used to transform wrapped data.
###Formi.chain().value();
Return wrapped data
##Formi.compose(funcs...)
Defines a composite function from a series of argument functions.
f(g(h(arg))) === Formi.compose(h, g, f)(arg)
Example
Both of these expamples define the same function.
var sumEven = Formi.compose(even, sum);
var sumEven = function() {
return Formi.chain(arguments)
.pipe(even)
.pipe(sum)
.value();
}
Formi(sumEven, 2, 3, 4, 5);
##Formi.map(func)
Defines a function that applies a function to a set of data
Example
var half = Formi.map(function(num) {
return num / 2;
});
half(2)
half(3, 4)
half([4, 8])
##Formi.reduce(func, [value])
Defines a function that reduces a set of data using a supplied function. A second argument can be provided to define an initial reduction value.
Example
var sum = Formi.reduce(function(total, num) {
return total + num;
}, 0);
sum(12)
sum(3, 4)
sum([7, 10])
var even = Formi.reduce(function(arr, num) {
if (num % 2) {
arr.push(num);
}
return arr;
}, []);
even(1)
even(1, 2, 3, 4)
even([1, 2, 3, 4])