@Override
    public Value evaluate(Value... arguments) throws Exception {
        if (arguments.length != 2) {
            throw new EvalException("add support only two argument!");
        }
        Value arr = new Value(arguments[0]);
        Value val = arguments[1];
        if (arr.getType() == ValueType.ARRAY) {
            if (val.getType() == ValueType.ARRAY) {
                for (Value v : val.getValues()) {
                    arr.getArray().add(v);
                }
            } else {
                arr.getArray().add(val);
            }
            return new Value(arr);
        }
        throw new EvalException("add support only array and values!");

    }