28、函数式语言中含底元素的流处理

函数式语言中含底元素的流处理

1. 引言

流是一种实用的数据结构,常用于表达进程通信等场景,在函数式语言中易于操作。本文聚焦于布尔流,即由 0 和 1 组成的无限序列,且从左到右进行访问。在函数式语言里,通常用列表类型 [Bool] 来表示流。但该类型包含含底元素(⊥)的无限序列,若程序对这类序列进行普通流访问,会在遇到底元素时卡住,因为获取该元素值的计算不会终止,导致第一个底元素之后的部分被丢弃,即便后续序列可能包含有价值的信息。

研究发现,含底元素的流在表示连续拓扑空间(如实数集 R)以及进行相关计算时很有用。我们将最多包含 n 个底元素的无限序列称为 n⊥ - 序列,记为 $\Sigma_{\perp,n}^{\omega}$。任何 n 维可分度量空间都能拓扑嵌入到 $\Sigma_{\perp,n}^{\omega}$ 中,特别地,实数集 R 可通过格雷码嵌入拓扑嵌入到 $\Sigma_{\perp,1}^{\omega}$ 里。这意味着每个实数都有唯一的 1⊥ - 序列表示,且 $\Sigma_{\perp,1}^{\omega}$ 和 R 的近似结构一致。由于 R 是一维连通空间,而 $\Sigma^{\omega}$ 是零维完全不连通空间,所以底元素 ⊥ 的存在至关重要。

为了处理 1⊥ - 序列,引入了 IM2 - 机器,它在每个输入/输出磁带上有两个磁头,可对 1⊥ - 序列进行扩展流访问。该机器诱导的实函数可计算性概念与标准概念一致。本文旨在将 IM2 - 机器的双磁头流访问扩展到顺序计算的函数式语言中。虽然可以用逻辑编程语言自然表达 IM2 - 机器的行为,但将实函数表示为函数式编程语言中的函数更为理想,还能应用高阶函数。 </

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值