Implement a generic function called reduce that accepts three arguments: a function (as the first argument), a list (as the second argument), and an initial value (as the third argument).
The purpose of the reduce function is to iteratively apply the given function to the elements of the list, while maintaining a running total initialized with the third argument, and finally return a single resulting value.
The reduce function should perform the following steps:
Accept all the arguments.
Iterate over the list, applying the provided function to the running total and the current list element at each step.
After processing all elements in the list, return the final value of the running total.