private Pair EvaluateParameters(Pair currentPair) //Sets un this Function's SymbolTable
    {
        if(funcRoot == null)
        {
            return new Pair();
        }
        else
        {
            Object o;
            while(currentPair != null)
            {
                o = exec.run((Atom)currentPair);
                boolean tokenFound = false;
                if(o.getClass().getName().equals("Token"))
                {
                    for(int i = 0; i < funcTable.getSize(); i++) {
                        if(((Token) o).getValue().equals(funcTable.getSymbTable(i).getValue(((Token) o).getValue()))) {
                            funcTable.add(new SymbolTable(((Token) o).getValue(), funcTable.getSymbTable(i).getValue(((Token) o).getValue())));
                            tokenFound = true;
                        }
                    }
                    if(!tokenFound)
                    {
                        funcTable.add(new SymbolTable(((Token) o).getValue(), null));
                    }
                }
                else {
                    for(int i = 0; i < funcTable.getSize(); i++) {
                        if(((Token) o).getValue().equals(funcTable.getSymbTable(i).getValue(((Token) o).getValue()))) {
                            funcTable.add(new SymbolTable(((Token) o).getValue(), funcTable.getSymbTable(i).getValue(((Token) o).getValue())));
                            tokenFound = true;
                        }
                    }
                    if(!tokenFound) {
                        funcTable.add(new SymbolTable(((Token) o).getValue(), null));
                    }
                }
                currentPair = currentPair.getCdr();
            }
        }
        return new Pair();
    }