FP Exercise #1: Pseudo RNG by Date


Functional Paradigm applies:

  • No side-effects
  • No mutables
// FP Exercise #1: Deterministic Date.prototype based pseudo-rng

const add = (a,v) => a + v;
const toStrToArr = (integer) => integer.toString().split("");
const getNowArr = () => toStrToArr(Date.now());

function reduceToSingle(integer) {
	const rand = integer.reduce(add);
	const digitStr = toStrToArr(rand)[1];
	return parseInt(digitStr);
}

function generate() {
	return reduceToSingle(getNowArr().map(x => parseInt(x)));
}

console.log(generate());