Функциональное программирование - это создание и использование не мутирующих функций. Предыдущая проблема ввела метод concat как способ объединить массивы, не изменяя исходные. Сравните concat с методом push . Push добавляет элемент в конец того же самого массива, на котором он вызывается, изменяя этот массив. Вот пример: 
var arr = [1, 2, 3];
arr.push ([4, 5, 6]);
// arr изменяется на [1, 2, 3, [4, 5, 6]]
// Не функциональный способ программирования
Concat предлагает способ добавления новых элементов в конец массива без каких-либо мутирующих побочных эффектов.Измените функцию nonMutatingPush чтобы она использовала concat для добавления newItem в конец original вместо push . Функция должна возвращать массив.