public Object evaluate(ExpressionContext context) throws ExpressionException {
BigDecimal result = new BigDecimal("0");
for(int i = 0; i < arguments.size(); i++) {
Expression function = (Expression)arguments.get(i);
Object ret = function.evaluate(context);
if (ret instanceof Collection) {
ret = ((Collection)ret).iterator();
}
if (ret instanceof Iterator) {
Iterator iter = (Iterator)ret;