Haskell中的Bottom概念

26

在Haskell中,底部(Bottom)是指任何具有错误、未终止或涉及无限循环的计算,其类型可以是任何类型...这个概念是否只适用于Haskell?我们知道在格理论中,也存在一个Bottom的概念...难道Bottom不应该根据定义的顺序来定义吗?


2
我想知道这是否与您的问题相关:http://blog.ezyang.com/2010/12/hussling-haskell-types-into-hasse-diagrams/ - Daniel Pratt
请参见https://dev59.com/_2865IYBdhLWcg3wIrFg。 - Don Stewart
太好了!我也一直在想Java中的nullObject - user618815
我建议查看维基百科的解释,它与null/void或类似的东西不同。http://en.wikipedia.org/wiki/Bottom_type - wuxb
1个回答

36

实际上,有一种确定性的顺序,其中底部是最不确定的值。请查看这个关于Haskell中指称语义的页面,了解更详细的说明。

这是一个取自维基百科页面的 Maybe Bool 值的格子图。它显示了Just TrueJust ⊥更确定,而则是最不确定的。

enter image description here


4
“Just bottom”和“Nothing”是否具有相同的定义性?它们都有一个“定义性”的层级,但是“Nothing”是一个实心的结束,而“Just bottom”则不是。 - Dan Burton
17
@Dan它们不可比较,因为它们不在同一条链中。你只能说它们都高于底部。 - augustss
2
@Dan,对于一些应用程序来说,“只是底部”也是一个很好的完成方式(例如isJust)。 - Rotsor
这种图形是我第一次接触到域论的窗口。感谢您使用它! - luqui
3
我特别喜欢这个图形清楚地表明为什么⊥被称为“底部”。 - John L
@JohnL 这就是原因:(_|_) - Khuldraeseth na'Barya

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接