12.3 处理序列
处理序列,可供选择的范围很广泛,包括从低级技术,能控制一切,但难以表达更复杂而通常的处理模式,到更高级技术,虽然不能表达我们所有可能想要的,但会更优雅。
在 C# 中,最低级的(除了直接实现 IEnumerable<T> 接口)是使用迭代器块(iterator blocks),读取输入的序列,既可以使用 foreach,也可以使用枚举对象;而更高级的,我们可以使用预定义的(或者我们自己的)高阶方法,比如 Where 和 Select,如果只处理涉及某些特定的操作,可以使用 C# 3.0 的查询语法。
F# 中处理序列的最常见方法,与其他集合类型类似。我们已经看到,列表可以用函数,比如,List.filter 和 List.map 来处理;在 Array 模块中,也有类似处理数组的函数;在 Seq 模块中,同样有处理序列的函数集,一点也不奇怪。F# 语言,不显式支持任何查询语法,但我们会看到,序列表达式的某些观点,与低级的迭代器和高级查询背后的思想,有一致性。
原文地址:http://blog.csdn.net/hadstj/article/details/43019067