主要观点:在生产编程语言的效果系统讨论中,重要区别在于效果是由语言纯粹定义还是用户也能定义。Magnus Madsen 用“开放”和“封闭”描述此区别,封闭效果系统中所有效果由语言内置定义且数量有界,开放效果系统允许用户定义自身控制流效果且数量无界。编程语言中最有趣的效果须是内置的,如控制函数是否保证终止(“发散”)或是否允许执行副作用(“纯”),与用户定义效果不同,后者常用“代数效果处理程序”或“类型化延续”定义,更像是语言级对完全类型化迭代器等的支持,并非所有效果都用效果处理程序表达。在 Rust 中目前讨论的是引入封闭效果系统,并非认为开放系统无用不好,而是以向后兼容方式形式化和推广 Rust 效果系统工作量巨大,要划定界限。同时认为“类型化延续”更具启发性,虽目前不考虑但不意味着永远不考虑。
关键信息:介绍了封闭和开放效果系统的定义及特点,强调编程语言中有趣效果的内置性,提及 Rust 目前的情况及对“类型化延续”的看法。
重要细节:提到 Magnus Madsen 来自Flix 编程语言,以及相关讨论在 Rust T-Lang 调用中进行等。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。