Idris 语言文档 Version 1.3.1确 确定 定 定该程序会正确运行(即按照类型描述的规范运行)。 然而在现实中,软件依赖于状态,很多组件则依赖于状态机。它们可以描述像 奔 奃 奐 这样的网络传输协 议, 实现事件驱动的系统以及正则表达式的匹配。此外,像网络 奓 奯奣 奫 奥 奴 和文件这类的很多基础资源, 都由状态机隐式地管理;特定操作只有在资源处于特定状态时才可行,而这些操作也可以改变底层资源 的状态。 例如,只有向已建立连接的网络 例如,只有向已建立连接的网络 奓 奯奣 奫 奥 奴 发送消息才有意义,关闭 奓 奯奣 奫 奥 奴 会将其状态从“打开 ”切换为“关闭”。 状态机同样可以编码重要的安全性质。比如,在一个 奁奔 奍 (自动取款机)的软件 实现中, 有一点性质非常重要:奁奔 奍 只有在卡片插入且通过密码验证的状态下才能吐出钞票。 本教程将介绍Control.ST 库,它支持对带有状态和副作用的程序进行编程和推理。 该库已包含在 奉 奤 奲 型来描述带有状态的函数,以及 ST 用来描述顶层的状态转移。 接下来的章节(用类型表示状态机 夨 姩 妡妵 夷夸天 )描述了如何用类型表示状态机,以及如何定义接 接 接口 口 口以描述带有状态的系统。之后(复合状态 机 夨 姩 妡妵 夸夵天 )描述了如何复合带有多个状态机的系统。 它解释了如何实现同时使用多个状态机的系统, 以及如何基于低级系统来实现高级的带有状态的系统。 最后(示例:网络 S o cket0 码力 | 224 页 | 2.06 MB | 1 年前3
共 1 条
- 1













