Estoy empezando a aprender ocaml, y estoy realmente apreciando el poder de recursión en el idioma. Sin embargo, una cosa que me preocupa es el desbordamiento de la pila.¿Los programas en lenguajes funcionales tienen más probabilidades de tener desbordamientos de pila?
Si ocaml usa la pila para llamadas a funciones, ¿no se desbordará eventualmente la pila? Por ejemplo, si tengo la siguiente función:
let rec sum x =
if x > 1 then f(x - 1) + x
else x;;
eventualmente debe causar un desbordamiento de la pila. Si tuviera que hacer lo equivalente en C++ (usando recursividad), sé que se desbordaría.
Así que mi pregunta es, ¿existe una protección integrada para evitar que los lenguajes funcionales desborden la pila? Si no es así, ¿no son menos útiles de este modo, ya que el algoritmo de suma anterior, escrito en un estilo de procedimiento con un ciclo for, podría manejar cualquier número (desbordamiento de entero des-relacionado)?
hey! ese es el nombre del sitio. – kornfridge