为什么在函数式编程中不鼓励使用赋值运算符或循环?
如果我的函数满足以下两个要求,我相信Sum 返回给定条件下列表项的总和的函数,其中项在给定条件下的评估结果为true,这称为纯函数,不是吗? 1)对于给定的一组i / p,无论何时调用函数,都将返回相同的o / p 2)它没有任何副作用 public int Sum(Func<int,bool> predicate, IEnumerable<int> numbers){ int result = 0; foreach(var item in numbers) if(predicate(item)) result += item; return result; } 范例: Sum(x=>x%2==0, new List<int> {1,2,3,4,5...100}); 我之所以问这个问题,是因为我几乎每时每刻都在建议人们避免使用赋值运算符和循环,因为它是命令式编程风格。那么上面的示例在函数编程的上下文中使用循环和赋值运算符会出错吗?