JSFiddle - React, Tailwind, and code Playground
JavaScript
function sequence(){
var start = arguments[0] || 0;
var step = arguments[1] || 1;
return function(){
var result = start;
start += step;
return result;
}
}
function take(fu, count){
var result = [];
for(var i =0; i <= count; i++){
result.push(fu());
}
return result
}
function map(fu, array)
{
var result = [];
array.forEach(function(element, index, array){
result.push(fu(element));
});
return result;
}
function fmap(fu, sequence)
{
return function() {
return fu(sequence());
}
}
function partial5(fu)
{
var arg_closure = [].slice.call(arguments, 1);
var fu_arg = [];
return function(){
for(var arg in arguments){
fu_arg.push(arguments[arg])
}
return fu.apply(null, arg_closure.concat(fu_arg));
}
}
function partial(fu)
{
var arg_closure = [].slice.call(arguments, 1);
return function(){
var index = 0;
for(var arg in arg_closure){
if(arg_closure[arg] == undefined){
arg_closure[arg] = arguments[index++];
}
}
var fu_arg = [].slice.call(arguments, index);
return fu.apply(null, arg_closure.concat(fu_arg));
}
}
function bind(fu, obj)
{
return function()
{
return fu.apply(obj);
}
}
function test(a, b, c, d) { return 'a=' + a + ',b=' + b + ',c=' + c + ',d=' + d; }
var test1_3 = partial(test, 1, undefined, 3);
console.log(test1_3(5, 9)); // a=1,b=5,c=3, d=9