Speaker Deck

Stack Level too Deep e Tail Call Optimization: É uma boa ideia fazer recursão em Ruby? (TDC POA 2016)

by Guilherme Baptista

Published October 8, 2016 in Programming

Com a programação funcional sendo tão discutida nos últimos tempos e Elixir ganhando força, acabamos sendo influenciados por seus conceitos e muitas vezes tentamos implementá-los em Ruby. No caso de recursão - uma estratégia clássica de linguagens funcionais - veremos que inicialmente isto pode não ser uma boa ideia. Vamos entender o que é recursão, como funciona uma "tail call", aprender a realizar modificações na Ruby VM e a compilar uma versão customizada de código Ruby com suporte à Tail Call Optimization. Veremos também o que existe de verdade por trás do clássico erro "Stack Level too Deep", o que significa Stack em Ruby e como lidar com suas questões.