这个语法在Haskell中意味着什么:_ | _或(_ | _)

时间:2013-11-05 17:06:48

标签: haskell

我在许多受人尊敬的文件中一直看到这个相当令人尴尬的事情:_|_(_|_)

无法找到它的定义(Google不适用于符号)。那么究竟是什么呢?

2 个答案:

答案 0 :(得分:11)

来自here: -

  

<强>底

     

底部的数学符号是'⊥'。那是Unicode字符   22A5十六进制= 8869十进制。也可以在HTML中以'⊥'和   LaTeX为'\ bot'(在数学模式下)。在纯ASCII中,它经常被写入   作为极其难看的字符序列'_|_'

同样来自reserve keywords in Haskell

检查维基以查找Bottom and Partial Functions

  

为了定义部分函数,​​我们引入一个特殊值⊥,命名为   底部和通常用打字机字体写的 | 。我们说⊥是   完全“未定义”的值或功能。每种基本数据类型   像Integer或()包含一个⊥除了它们的常用元素。

更多说明here: -

enter image description here

enter image description here

答案 1 :(得分:0)

要明确的是,_|_不是haskell语法,而是&#34; bottom&#34;是一个对语言设计者最有用的概念。我认为可疑的是,正如上面的答案中所引用的那样:

  

除了常用元素外,每个基本数据类型(如Integer或())都包含一个&。&#34;

作为语言用户,我们reason fast and loose关于我们的代码,在我看来,concept的概念属于一个不同的概念层,我认为这就是你的混乱所在。

在异常和无限循环的存在下学习haskell和推理代码是完全可能的,而不需要任何类型的特殊额外居民的概念。