I dont understand how to write functions recursively : So I need to call one function recursively in another function.
I have some array, and first 2 parameters in function are pointers on beggining of array and behind the end of array. Third parameter is function which I need to call recursively, and 4th parameter is parameter with default value, and I named it a_0;
Suppose that array has elements: a_1, a_2, a_3, ... , a_n.
My function Result need to calculate this:

  f(...f(f(f(a_0,a_1),a_2),a_3),...,a_n)

This is task for practice, for exam, and I dont understand really principle of recursion(I understand for Factoriel) but I dont understand this example.

     int Result(int *p, int *q,int (*f)(int, int), int a_0=0) {
          ......
     }