я пишу на ТС. Для вас это, возможно, дико выглядит, но решать вам - может прочитаете Тома Хардинга, или другие книги по ФП, посмотрите на либы, типа 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 как раз вы столкнетесь скорее
Физзбазз? А зачем тут классы? Это же обычная функция/метод.
Обсуждают сегодня