Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Haskell 哈斯克尔进入元组_Haskell_Error Handling - Fatal编程技术网

Haskell 哈斯克尔进入元组

Haskell 哈斯克尔进入元组,haskell,error-handling,Haskell,Error Handling,我在Haskell中有一个函数定义为(Error是一种数据类型) 我怎样才能到达返回元组,我已经尝试过了 fst (mixIt 2 2) 但是它给出了一个错误?fst是一个类型为(a,b)->a的函数(我们以更具体的方式使用它,如(Int,Int)->Int),但我们将它应用于具有error(Int,Int)类型的mixit22。这是我们错误的根源 为了修复它,我们需要检查通过模式匹配从mixIt返回的Error值 case mixIt 2 2 of Nice tuple ->

我在Haskell中有一个函数定义为(Error是一种数据类型)

我怎样才能到达返回元组,我已经尝试过了

fst (mixIt 2 2)

但是它给出了一个错误?

fst
是一个类型为
(a,b)->a
的函数(我们以更具体的方式使用它,如
(Int,Int)->Int
),但我们将它应用于具有
error(Int,Int)
类型的
mixit22
。这是我们错误的根源

为了修复它,我们需要检查通过模式匹配从
mixIt
返回的
Error

 case mixIt 2 2 of
   Nice tuple -> fst tuple
在有
Nice
构造函数的情况下,我们可以显式地进行模式匹配,该构造函数将我们想要的元组作为参数。但是有一个问题,因为
mixIt
也可能返回
Woops
,这是
Error
的另一个构造函数。我们需要单独处理这种情况,否则我们的程序将在运行时失败(一件非常糟糕的事情)


一旦您填写了案例表达式的最后一个分支,您就可以开始了。

谢谢您,我真的无法在web上找到关于这一点的任何信息,因为我不确定要搜索什么解决方案。再次感谢,这是一个很大的帮助!
 case mixIt 2 2 of
   Nice tuple -> fst tuple
 case mixIt 2 2 of
   Nice tuple -> fst tuple
   Whoops -> ... some Haskell code to produce another tuple ...