docs: protected TokenList.Token createFunction( TokenList.Token name , List<TokenList.Token> inputs , TokenList tokens , Sequence sequence )
      {
          Operation.Info info;
          if( inputs.size() == 1 )
              info = functions.create(name.getFunction().getName(),inputs.get(0).getVariable());
          else {
              List<Variable> vars = new ArrayList<Variable>();
              for (int i = 0; i < inputs.size(); i++) {
                  vars.add(inputs.get(i).getVariable());
              }
              info = functions.create(name.getFunction().getName(), vars );
          }
  
          sequence.addOperation(info.op);
  
          // replace the symbols with the function's output
          TokenList.Token t = new TokenList.Token(info.output);
          tokens.replace(name, t);
          return t;
  
      }