function selection

Is it possible to have one function that calls another by selecting it from a list. Say I have a group of 25 functions and I want to call one of these 25, can the function be called by a number from an array instead of calling it by the name of the function?

Yes, you could have an array of function pointers. Google "C++ pointer to function".

And if the array of function pointers is too complicated Or functions need non generic parameters then a good old tedious if/else or switch/case will do

void callFunction(byte index)
{
   if (index == 0) function0(p1,p2);
   else if (index == 1) function1(p1,p2,p3);
   else if (index == 2) function2(p4);
   else if (index == 3) function3();
   ...
}

Or

void callFunction(byte index)
{
   switch (index) {
      case 0: function0(p1,p2); break;
      case 1: function1(p1,p2,p3);break;
      case 2: function2(p4);break;
      case 3: function3();break;
      ...
   }
}