private static object Sum(Context context, IList<object> arguments)
{
if (arguments[0] is EmptyList)
return 0;
AddExpression addexpr = new AddExpression(null, null);
List list = (List)arguments[0];
object result = 0;
while (list != null)
{
result = addexpr.Apply(result, list.Head);
list = (List)list.Tail;
}
return result;
}