public override Function Differentiate(Variable x) { ArrayList func; Function sum = (Constant)0; foreach(Function f in this.functions) { func = (ArrayList)this.functions.Clone(); func.Remove(f); func.Add(f.Differentiate(x)); sum += new Product(func); } return sum; }