呢一頁仲未翻譯。英文版本為準。 睇英文版 →

效果系统

代数效果与处理程序:检查、推断和运行时分派。

效果系统

效果系统位于语言设计与实际实现之间的交叉点。全面页面需要承认自托管的树中专门的效果子系统,同时保持公开的教学合同集中在显式的 with ... 子句上。

当前源图

  • self-hosted/check/effects.sio 覆盖效果感知语义检查。
  • self-hosted/effects/types.siochecker.siohandlers.sio 展示了专门的自托管实现拆分。
  • docs/architecture/EFFECT_HANDLERS_IMPLEMENTATION.md 仍然作为更广泛的设计参考资料有用,但实施真相应来自当前树并经过验证的行为。

公共文档应强调的内容

  • 效果在函数签名中显式。
  • IO 效果仍然是用户的日常例子中最清晰的一个。
  • 更丰富的处理程序架构存在于仓库和设计文档中,但不是每条路径都应该在已检查的公共产物中呈现为同样验证过的。

签名级别的效果跟踪

fn read_config(path: string) -> string with IO {
    read_line()
}

贡献者指引

  • 如果你正在追踪效果行为,请从自托管的检查器文件开始,然后步入专门的效果模块。
  • 如果你正在编写用户文档,不要跳过签名级别的合同,仅仅因为底层实现更复杂。
  • 如果你正在文档处理程序,请明确你是在描述当前已检查的路径还是更全面的设计空间。