title: I don't understand how to write functions recursively
body: <p>So I need to call one function recursively in another function.
  I have an array and first 2 parameters in function are pointers on beginning of the array and behind the end it. Third parameter is a function which I need to call recursively, and 4th parameter is a default value which I named it <code>a_0</code>;
  Suppose that array has elements: <code>a_1, a_2, a_3, ... , a_n</code>.
  My function Result need to calculate this:</p>
  
  <pre><code>f(...f(f(f(a_0,a_1),a_2),a_3),...,a_n)
  </code></pre>
  
  <p>This is task for practice, for exam, and I don't understand really principle of recursion (I understand for Factorial) but I don't understand this example.</p>
  
  <pre><code> int Result(int *p, int *q,int (*f)(int, int), int a_0=0) {
        //I need to return this: f(...f(f(f(a_0,a_1),a_2),a_3),...,a_n)
   }
  </code></pre>