Tail Call Optimización de la función recursiva
Esta es una función que aplana profundamente una matriz
const deepFlatten = (input) => {
let result = [];
input.forEach((val, index) => {
if (Array.isArray(val)) {
result.push(...deepFlatten(val));
} else {
result.push(val);
}
});
return result;
};
Durante una discusión, me dijeron que no es eficiente en la memoria, ya que podría causar desbordamientos de la pila.
Yo leo enhttp://2ality.com/2015/06/tail-call-optimization.html que potencialmente podría volver a escribirlo para que sea TCO-ed.
¿Cómo se vería eso y cómo podría medir su perfil de uso de memoria?