Eu sei o que é recursão (quando um patten se repete dentro de si, normalmente uma função que se chama em uma de suas linhas, após uma fuga condicional ... certo?), E posso entender funções recursivas se as estudar de perto. Meu problema é que, quando vejo novos exemplos, estou sempre inicialmente confuso. Se eu vejo um loop, ou um mapeamento, zipagem, aninhamento, chamada polimórfica e assim por diante, eu sei o que está acontecendo apenas olhando para ele. Quando vejo código recursivo, meu processo de pensamento geralmente é 'wtf is this?' seguido por 'oh, é recursivo', seguido por 'acho que deve funcionar, se eles dizem que funciona'.
Você tem dicas / planos / recursos para desenvolver habilidades nessa área? A recursão é meio que um conceito estranho, então estou pensando que a maneira de enfrentá-la pode ser igualmente estranha e inofensiva.