相关疑难解决方法(0)

Haskell中Bottom的概念

这里描述的Haskell的底部被认为是任何有错误,未终止或涉及无限循环的计算,是任何类型的......这是否特定于Haskell?我们知道在莱迪思理论中,还有一个概念Bottom......并且不应该根据定义的顺序定义底部?

haskell types denotational-semantics semantics

26
推荐指数
1
解决办法
2125
查看次数

"错误"功能的存在如何影响Haskell的纯度?

我一直想知道Haskell异常系统如何适应整个"纯函数式语言"的东西.例如,请参阅下面的GHCi会话.

GHCi, version 8.0.1: http://www.haskell.org/ghc/  :? for help
Prelude> head []
*** Exception: Prelude.head: empty list
Prelude> :t head
head :: [a] -> a
Prelude> :t error
error :: [Char] -> a
Prelude> error "ranch"
*** Exception: ranch
CallStack (from HasCallStack):
  error, called at <interactive>:4:1 in interactive:Ghci1
Prelude>
Run Code Online (Sandbox Code Playgroud)

头的类型是[a] - > a.但是当你在空列表的特殊情况下调用它时,你会得到一个例外.但是类型签名中没有考虑此异常.

如果我没记错的话,在模式匹配过程中出现故障时,情况类似.类型签名所说的并不重要,如果你没有考虑到每种可能的模式,你就有可能抛出异常.

我没有一个简明扼要的问题要问,但我的头脑正在游泳.将这个奇怪的异常系统添加到其他纯粹优雅语言的动机是什么?它仍然是纯净的,但我只是缺少一些东西?如果我想利用这个异常功能,我将如何去做(即如何捕获和处理异常?还有什么我可以用它们做的吗?)例如,如果我编写使用它的代码"头"功能,当然我应该采取预防措施,以一个空列表以某种方式走私自己的情况.

error-handling haskell functional-programming exception purely-functional

7
推荐指数
1
解决办法
369
查看次数

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

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

无法找到它的定义(Google不能很好地使用符号).那么究竟是什么呢?

haskell

4
推荐指数
1
解决办法
2711
查看次数