JSFiddle - React, Tailwind, and code Playground

by Paco86

JavaScript

function from(x) {
	return function() {
  	var result = x;
    x += 1;
    return result;
  }
}


var index = from(10);
console.log(index());
console.log(index());
console.log(index());


/////////////////////////////////
function to(func, max) {
	return function() {
  	var val = func();
    if (val < max) return val;
  }
}

var indexMax = to(from(7), 10);
console.log(indexMax());
console.log(indexMax());
console.log(indexMax());
console.log(indexMax());
console.log(indexMax());


/////////////////////////////////
function fromTo(start, end) {
	return to(from(start), end);
}

var ft = fromTo(97, 100);
console.log(ft());
console.log(ft());
console.log(ft());
console.log(ft());
console.log(ft());
console.log(ft());


/////////////////////////////////
function element(arr, func) {
	if (func === undefined) {
  		func = fromTo(0, arr.length);
  }
	return function() {
      	var index = func();
      	if (index !== undefined) return arr[index];
  }
}

var ele = element(['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h'], fromTo(1,4));
console.log(ele());
console.log(ele());
console.log(ele());
console.log(ele());

var ele2 = element(['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h']);
console.log(ele2());
console.log(ele2());
console.log(ele2());
console.log(ele2());
console.log(ele2());

/////////////////////////////////
function collect(func, arr) {
	var res;
	return function() {
  	res = func();
  	if (res !== undefined) arr.push(res);
    return res;
  }
}

var arr = [999, 888]
var col = collect(fromTo(2, 3), arr);
console.log(col());
console.log(col());
console.log(col());
console.log(arr);


/////////////////////////////////
function filter(funcA, funcB) {
	var item;
	return function() {
  	item = funcA();
  	while(item !== undefined && !funcB(item)) {
    	item = funcA();
    }
    
    return item;
  }
}


var fil = filter(fromTo(0, 5), function(val) {
	return (val % 3) ===...