12.1 生成序列

12.1 生成序列



有几种生成序列的技术,我们来看一下我们的选项。直接的方法是实现 IEnumerator <T> 接口,提供 Current 属性和 MoveNext 方法,它将枚举数对象移动到下一个元素。这迫使我们显式创建有可变状态的对象,这很明显违反了函数式的风格。通常,我们可以应用隐藏可变异的技术,给我们更加声明式表达生成序列的内容。这类似于在前一章中使用的延迟值。显式使用可变状态 (例如,实现缓存),看起来不像好的函数风格,但当我们隐藏了可变异到 Lazy<'T> 类型,就获得了完全合理的函数式代码。

往常,在函数式编程中,我们可以使用高阶函数。F# 库支持不少的函数处理序列,但我们只看一个例子。后面我们会看到,C# 和 F# 都有简单的方法来生成序列。在 C# 中,我们可以使用迭代,F# 支持通用目的的序列处理的功能,称为序列表达式(sequence expressions)。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值