Lo que encontraste se conoce normalmente como tal recursion, y en realidad es el problema que estabas teniendo, cuando se ejecuta 'otra', sus variables no salen del scope porque las 'recursivas' anteriores todavía no terminaron de ejecutarse, estrictamente hablando, tu segunda solución tiene el mismo problema, pero evidentemente ruby está optimizando la llamada recursiva cuando está al final.
Pero en el primer ejemplo todas las llamadas a 'otra' ya terminaron, las que no terminaron fueron las llamadoras. En fin, cierra lo que decís con el comportamiento de todas maneras. Salvo que la segunda solución funciona porque creo que, al ejecutarse al final, después de la recursión, la llamadora también termina y ahí si libera, no sé si es optimización. Espero que le sirva a alguien más que esté haciendo recursión, no parece muy intuitivo. Me estaba matando el servidor y ahora ... ¡anda al pelo! :) Saludos, Eduardo. _______________________________________________ Ruby mailing list [email protected] http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar
