以F#表示的底部类型

2020-09-23 00:26:49

底部类型是没有值的类型。当每次执行不终止或引发异常时,它作为函数的返回类型很有用。某些语言包括底部类型。F#增加底部类型的建议被拒绝。有趣的是,C#添加底层类型的建议仍然有效。

不过,可以在F#中定义底层类型。这是我会怎么做的。

我最初的想法是省略Bottom,然后在其模块中单独使用此行(这样公共函数就不提供对这个私有案例构造函数的访问)。然后我读到了三年前在Reddit上的这篇帖子中加入底部的建议。通过包含底层,这个被区别的联合是一个递归类型,但是缺少一个基本情况。因此,从这一行可以清楚地看出,不可能获得Bottom的实例。

除了没有值之外,还有另一个底部类型的属性。在子类型系统中,它是所有类型的子类型。这就是命名为Bottom&34;的动机。它位于类型层次结构的底部。我的底部类型没有此属性。我认为F#添加底层类型的建议是明确要求此功能的。

编写博客插件的标签功能仍在开发中。最终,标签会链接到某个地方。