Functionally
Usage
npm install functionally
var F = require('functionally')
function log(msg){
console.log(msg)
}
function greet(name){
return 'Hello ' + name + '!'
}
var logGreeting = F.compose(log, greet)
logGreeting('Bob')
find(fn, target)
Returns the first object in target for which fn returns a truthy value.
Example
F.find(function(obj){
return obj.name == 'js'
}, [
{name: 'ruby'},
{name: 'js'},
{name: 'php'},
{name: 'erlang'}
])
The find
function is curried, so you can do
var findFirst = F.find(function(value, index, target){
if (index === 0){
return value
}
})
findFirst([4,5,6]) == 4
once(fn)
Returns a function that calls fn just once.
Example
var counter = 0
var inc = F.once(function(){
counter++
})
inc()
counter == 1
inc()
inc()
counter == 1
The function returned by once returns the result of the original function. On subsequent calls, returns the same result.
maxArgs(fn, count)
If you use parseInt as the parameter to array.map, you get an undesired result
['1','2','3'].map(parseInt)
But if you use maxArgs:
var parseInt = F.maxArgs(parseInt, 1)
['1','2','3'].map(parseInt)
//you get [1,2,3], the expected result