я пишу на ТС. Для вас это, возможно, дико выглядит, но решать вам - может прочитаете Тома Хардинга, или другие книги по ФП, посмотрите на либы, типа fantasy-land, споткнётесь о tail recursion optimization - потом продолжим разговор. А пока такая задача любителям классов - напишите простой физзбазз? Вот, как сделал я (без классов)
const uniRec_ = (predicate, concat, next) =>
(acc, i) => predicate(i, acc)
? acc
: uniRec_(predicate, concat, next)(concat(acc, i), next(i))
const gen_sequence = (max, optional = {}) => (
({ max, min, step, init }) => uniRec_(
i => i >= max,
(acc, i) => acc + fizz_buzz(i) + ' ',
i => i + step
)(init, min))({ min: 1, step: 1, init: '', ...optional, max })
console.log(gen_sequence(16));
console.log(gen_sequence(100, { min: 19, step: 3, init: "Begin: " }));
Хех, где ФП и где JS
С tail recursion optimization как раз вы столкнетесь скорее
Физзбазз? А зачем тут классы? Это же обычная функция/метод.
Обсуждают сегодня