title: Mastering Recursive Programming
body: <p>I am having trouble in thinking/solving the problem in terms of recursion. I really appreciate the concept and I can understand them like  creating base case, exit case &amp; the recursive calls etc. I can solve simple problems like writing factorial or summation of integers in an array. That's where my thinking stops. I couldn’t really apply the concepts or come up with solutions when problem gets complicated. For instance, tower of Hanoi, though I can understand the problem and solution, I, on my own can't up with a solution. It applies to other algorithms like quick sort/binary tree traversal as well. So my question is </p>
  
  <ol>
  <li>What is the best way to master it? </li>
  <li>Can anyone suggest a list of problems or questions, which I can use as an exercise to practice it? </li>
  <li>Will learning functional language help me with my understanding?</li>
  </ol>
  
  <p>Please advice.</p>